Last update: June 28, 2022 21:06 UTC (1f97faf40)
Release Date: 2011 Dec 24
No changes from 4.2.6p5-RC3.
Release Date: 2011 Dec 8
NULL peer->dstadr
is not accessed in orphan parent selection.Release Date: 2011 Nov 30
server
does not honor -n.sys_refid
from use in loopback TEST12 (from David Mills).MODE_SERVER
response.Release Date: 2011 Oct 18
Release Date: 2011 Sep 22
sntp: -l/--filelog -> -l/--logfile
, to be consistent with ntpd
.libopts/file.c
fix from Bruce Korb (arg-type=file
).Release Date: 2011 Aug 04
if_nametoindex()
check for hpux.Release Date: 2011 Jul 10
NEWS
file.Release Date: 2011 May 25
mprintf(), emalloc_zero()
.Release Date: 2011 May 16
tickadj
-like taming of wildly off-spec Windows clock using NTPD_TICKADJ_PPM
env. var. specifying baseline slew.Release Date: 2011 Jan 03
scripts/check--help
when generating .texi
files.bk
triggers for the bk-5 release.genCommitLog
for the bk-5 release.Release Date: 2010 Dec 25
libopts.m4
.ntp-keygen
OpenSSL version display for --help, --version
, display both build and runtime OpenSSL versions when they differ.m4
quoting in configure.ac, *.m4
files, resolving intermittent AC_LANG_PROGRAM
possibly undefined errors.in6_addr
from ifindex
used for IPv6 multicasting ioctls
.INT_PRIVACY endpt bit
flag for IPv6 RFC 4941 privacy addresses.setsockopt(IP[V6]_MULTICAST_IF)
before each send to multicast to select the local source address, using the correct socket is not enough.Release Date: 2010 Nov 28
log_msg()
and debug_msg()
from sntp
in favor of msyslog()
.libopts/
in sntp/
.AM_COND_IF
use in LIBOPTS_CHECK
.build
script.Release Date: 2010 Nov 14
Release Date: 2010 Nov 10
sntp
from -devRelease Date: 2010 Oct 29
scripts/checkChangeLog
.Release Date: 2010 Oct 25
scripts/checkChangeLog
.Release Date: 2010 Oct 24
Release Date: 2010 Oct 22
Release Date: 2010 Oct 16
ntpsnmpd, libntpq
warning cleanup.Release Date: 2010 Oct 14
Release Date: 2010 Sep 25
Release Date: 2010 Sep 18
Release Date: 2010 Sep 11
Release Date: 2010 Jul 09
Release Date: 2010 Jun 19
Release Date: 2010 Jun 12
Release Date: 2010 Jun 03
ntp_timestamp_from_counter()
without first logging the reason.passwd blah
syntax in ntpq
.Release Date: 2010 May 19
Release Date: 2010 May 11
refid
in ntpq -p
billboard.EVP_*()
API when built without OpenSSL. (from ntp-dev)('A' - '0'), ('a' - '0')
in sntp
.hints/winnt.html
update from G. Sunil Tej.Release Date: 2010 Apr 27
--with-arlib
from br-flock
.Release Date: 2010 Apr 18
html/authopt.html controlkey, requestkey
, and trustedkey
docs.Release Date: 2010 Apr 09
Release Date: 2010 Mar 31
refclock_open()
to return 0 on failure, not -1.refclock_open()
on failure.SIMUL=4 ./flock-build -1
to prioritize -1/--one
.Release Date: 2010 Feb 09
Release Date: 2010 Feb 04
sprintf()
calls to snprintf()
, also strcpy(), strcat()
.emalloc()
returning NULL.arlib
.Release Date: 2010 Jan 24
TZ=UTC
instead of TZ=
when calling date
in scripts/mkver.in
.Release Date: 2009 Dec 25
Release Date: 2009 Dec 20
Release Date: 2009 Dec 09
va_end()
in refclock_true.c true_debug()
.ntpdc
arrays are not overrun even if callers misbehave.sock_hash()
to return a negative number.ntpq.c atoascii()
.config_nic_rules()
does not call strchr(NULL, '/')
.savedconfig
leaked in save_config()
.main()
.kod_init_kod_db()
fails to fclose(db_s)
in two error paths.free(up);
in refclock_palisade.c
error return, again.sntp
to coredump.shmget() refclock_shm
failing because of file mode.intres
retries duplicate assocations endlessly..c
and .h
files.refclock_oncore.c
ntp_intres
(minor).ntpq :config
core dumped with a blank password.configure --disable-dependency-tracking
won’t build..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
.ntpq
and ntpdc
using newly-available digest types.INFO_ERR_AUTH
.libntp --without-crypto
caseioctl(TIOCSCTTY, 0)
fails on NetBSD [0-2]. > 3.99.7.clock_gettime()
not detected, need -lrt
on Debian 5.0.3.clk_trimtsip.c
sntp/networking.c IPV6_JOIN_GROUP
undeclared.refclock_shm
.refclock_nmea
when can’t open /dev/gpsU
.ntpq rv 0 settimeofday
always shows UNKNOWN on unix.ntpd/complete.conf
missing multicastclient test case.grep
option prevents compilation.sntp
illegal C does not compile on Solaris 7.#ifdef HAVE_PPSAPI
.lib/isc/win32/strerror.c
and move #define strerror...
to a header not used by lib/isc
code.setsockopt()
v4 address pointer to void *
.ntpsnmpd
undefined reference to ntpqOptions
.ntpd --interface
precedence over --novirtualips
lost.ntpq -c ‘rv 0 variablename’
returns extra stuff.--novirtualips
or --interface
are used.ntpq, ntpdc, ntp-keygen -d
& -D
should work with configure --disable-debugging
.restrict
.revoke #
to match documentation, deprecate crypto revoke #
..
isn’t on $PATH
.g
options on ntpd
command line.cvo.sh
.refclock_nmea
can’t open file.interface ignore 0.0.0.0
is ignored.saveconfig
emits -4
and -6
on when not given.ntpq/ntpdc
MD5 passwords truncated to 8 chars on Suns.refclock_palisade.c
fork()
.autokey
directive.applink
support.yylex()
must always set yylval
before returning.free_config_trap()
when trap 1.2.3.4
is used without any further options.OPENSSL_INC
and OPENSSL_LIB
macros for Windows and remove unnecessary reference to applink.c
for Windows__int64
kink.GETTIMEOFDAY
macrodumpcfg
omits statsdir
, mangles filegen
.ntpq :config/config-from-file
events.ntpd
dumping more than one trustedkey
sntp
.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.crypto_xmit()
may call crypto_alice[23]()
with NULL peer.sntp
uses uninitialized guesses[0], precs[0]
.resolve_hosts()
output count and pointers are consistent.gsoc_sntp
IPv6 build problems under HP-UX 10.gsoc_sntp recv_bcst_data mdevadr.ipv6mr_interface
uninitialized.move_fd()
does not return negative descriptors.resolve_hosts()
leaks error message buffer.sntp handle_saving()
writes stack garbage to file when clearing.datum_pts_start()
uninitialized arg.c_ospeed
.gsoc_sntp on_wire()
leaks x_pkt, r_pkt
.gsoc_sntp on_wire()
frees wrong ptr receiving KoD.tm_zone (arc, chronolog, dumbclock, pcf
).xpkt.mac
uninitialized in simulate_server()
.simulate_server() rbuf.msg_flags
uninitialized.gsoc_sntp recvpkt()
fails to free(rdata)
.gsoc_sntp recv_bcast_data()
fails to free(rdata)
on error paths.gsoc_sntp resolve_hosts()
needs simplification.gsoc_sntp auth_init()
fails to fclose(keyfile)
.pkt_output()
leaks a copy of each packet.tv_to_str()
leaks a struct
to each call.gsoc_sntp/crypto.c auth_init()
always returns a list with one entry.ntpd/refclock_wwvb.c
.search_entry()
mishandles dst
argument.kod_init_kod_db()
overruns kod_db malloc
’d buffer.RES_MSSNTP
typo in ntp_proto.c
.fast_xmit()
of 4.2.5p187.NTP_INSIST(fd != maxactivefd)
failure in intres
childMD5auth_setkey
zero-fills key from first zero octet.--enable-wintime
, symmetric workaround is now always enabled.fudge time2
to offset NMEA serial timestamp.CR
and LF
both as line terminators.fudge time1
sign flipped in 4.2.5p164.ntpsnmpd
build fails after sockaddr
union changes.autokey
segfaults in cert_install()
.refclock_oncore
on /etc/ntp.oncore*
configuration file search order.keysdir free()
’d twice #ifdef DEBUG
ntpd
without logging a reason.decodenetnum()
buffer overrun on [ with no ]
ntpd --usepcc
and --pccfreq
options on Windowssetsockopt(SO_EXCLUSIVEADDRUSE)
can fail on Windows 2000 and earlier with WSAINVAL
, do not log a complaint in that case.emalloc
.restrict -6 ...
reports a syntax error.fudge flag4 1
obscures position in timecodentpd
is deaf when restricted to second IP on the same netntpd
won’t start with more than ~1000 interfaces-i/--jaildir
and -u/--user
when they are disabled by configure
.refclock_parse.c
does not compile without PPSAPI.nmea_shutdown
assumes that nmea has a unit assignedrefclock_nmea.c
unpeer
AKA unconfig
command for ntpq :config
ntpq
overlap diagnostic message test buggyrefclock_nmea
should not mix UTC with GPS timerefclock_pps
logicnodebug
builds shed no light on -d, -D
option failure.refclock_report
missing braces cause spurious peer event: clock clk_unspec
log entriesntpq
uses sizeof(u_long)
where sizeof(u_int32)
is meant.fclose()
in ntp-keygen.c
.ntp_crypto.c
.time_t
in caljulian()
and prettydate()
.sntp
’s crypto.c
.caljulian.c
.efclock_hpgps
.ntpd
on Windows with DLL backendsstatsdir
configuration parsing is broken.sys_epoch
.ntpq_parsestring()
in ntpsnmpd
.#undef netsnmp
’s PACKAGE_*
macros.netsnmp
do not have netsnmp_daemonize()
.timingstats
file.--with-net-snmp-config=progname
ntpSnmpSubagentObject.h
is missing from the distribution.net-snmp
headers before deciding to build ntpsnmpd
.ntpdc unconfig
failurerefnumtoa.c
is using the wrong header file.ntpdc/ntpq
crash prompting for keyid
on Windowsgmtime()
returns NULL on windows where it would not under Unix.ntpdc unconfig
command doesn’t prompt for keyid
.help
to stdout
.;
from ntp-keygen.c
.interface [listen | ignore | drop] ...
directive.no_needed
to ntp_intres
as first part of fixing.ss_family
uninitialized.-4/-6
qualifiersntpq -c
and -p
order on command line.--disable-ipv6
is broken.time1
offset if flag3
set.restrict default ignore
does not affect IPv6.1ms
jitterDocs
interface (alias nic)
and unpeer
.accopt.html
typo fixes from Dave Mills.authopt
documentation changes from Dave Mills/Dave Hart.decode.html
and driver20.html
updates from Dave Mills.driver4.html
updates from Dave Mills.html/drivers/driver20.html
driver20.html
.keygen.html
updates from Dave Mills.ntpq --old-rv, saveconfig, saveconfigdir, ntpd -I -L
and -M
, and interface/nic rules. (From Dave Hart)prefer.html
updates from Dave Mills.sntp
documentation updates and cleanup.sntp
sntp
: clean up some error messages.sntp
: Use the precision to control how many offset digits are shown.sntp
: Show root dispersion.sntp/main.c
: Remove duplicate global adr_buf[]
(also defined in networking.c
) which Piotr Grudzinski identified breaking his build.sntp
.sntp
.sntp
: out with the old, in with the new.msntp
on Solaris when sntp
subdir is configured before parent caused by different gethostent
library search order.gsoc_sntp/utilities.o
from repository so that .o
build products can be cleaned up without corrupting the repository.gsoc_sntp/:fetch-stubs
to gsoc_sntp/fetch-stubs
to avoid file name problems under Windows.gsoc_sntp
’s GCC warning code.CFLAGS
for gsoc_sntp
.time.h
for sntp
under linux.rpl_malloc()
for sntp
for systems that need it.ss_len
and socklen
type for sntp
.sntp configure.ac
script.sntp
cleanup and fixes.gcc -Wstrict-overflow
for gsoc_sntp
as wellntpd
ntpd
keyword scanner finite state machine at compile time rather than at runtime, shrink entries from 40+ to 8 bytes.ntpd
built with configure --disable-saveconfig
.ntpd --saveconfigquit
fidelity using new complete.conf
.ntpd --saveconfigquit <filename>
option for future build-time testing of saveconfig
fidelity.ntpd/ntp_parser.c
refclocks
#if 0
rather than #ifdef DEBUG
msyslog
as well as to any clockstats
file.ntpd
time_pps_kcbind
in NMEA refclock driver../configure --enable-force-defer-DNS
to help debugging.automake/autoconf
upgrades.*-opts.h
dependency so default get
action isn’t used.ntp-keygen
, Autokey OpenSSL build vs. run version mismatch is now a non-fatal warning.ntpdc
, broken in p240.isc/mem.h
, shaving 47k from a MIPS ntpd
binary.authkeys.c
cleanup from Dave Mills.sntp/Makefile.am
’s distribution list.ntp.keys
(FIPS 140-2).NTP_VPATH_HACK
configure test to handle newer gmake
versions.__ss_family
and __ss_len
when the more common ss_family
and ss_len
are present.ntpd/Makefile
when cross-compiling (keyword-gen
and ntpd --saveconfigquit
).in6addr_any
test in configure.ac
to attempt link too.ntpsnmpd/Makefile.am
include file order to fix FreeBSD build.autokey
cleanup from Dave Mills.tos maxhop
ntp.conf
knob.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.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.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.Makefile.am
files from the lib/isc/include
tree.libisc
code to match the upstream layout in BIND. This is step one of two, changing the layout but keeping our existing libisc
.nic ignore all
rule before any rules from ntp.conf
, so nic listen eth0
alone means the same as -I eth0
.prefixlen
from one rule to the next.::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.setvar
directive.ntpq :config
syntax errors with ^
.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.nic listen 192.168.0.0/16
instead of nic listen 192.168.0.0 prefixlen 16
.sntp/kod_management.c
bugs.ntpq -c dumpcfg
, Google Summer of Code project of Max Kuehn.
at the end of PATH
for config.guess
.cvo.sh
: Add support for CentOS, Fedora, Slackware, SuSE, and QNX.scripts/cvo.sh
in the build
script to get better subdir names.signd
blocking when restrict mssntp
used.restrict
keyword mssntp
for Samba4 DC operation, by Dave Mills.ntp_proto.c
cleanup from Dave Mills.timepps-Solaris.h pps_handle_t
changed from pointer to scalarntpdc
layout verification.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.FLAG_FIXPOLL
, from Dave Mills.erealloc()
and estrdup()
, a la emalloc()
.ntp.conf
’s parser error messages.configure.ac NTP_CACHEVERSION
interface, display cache version when clearing. Fixes a regression.config.cache
when it is empty.ntp-keygen
cleanup from Dave Mills.NTP_CACHEVERSION
mechanism to ignore incompatible config.cache
gcc -Wstrict-prototypes
when not building with OpenSSLgcc -Wstrict-overflow
ntpq/ntpdc
emit newline after accepting password on Windowsntp-keygen.c
: Updates.syslog
function ID in refclock_{param,ppsapi}
.syspoll
is within the peer’s minpoll/maxpoll
bounds.ntp_crypto.c
: Use sign_siglen
, not len
. sign key filename cleanup.NTP_MAXEXTEN
from 1024 to 2048, update values for some field lengths.m4/ntp_lineeditlibs.m4:
fix warnings from newer Autoconflogconfig
keyword declaration to MULTIPLE_ARG
DEBUG
for all the typical C runtime allocators such as calloc, malloc
, and strdup
. Previously only emalloc
calls were covered.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.ports/winnt/libisc/isc_strerror.c
and quiet compiler warnings.ntp_proto.c
from Dave Mills.ntp_parser.c malloc
redeclaration warningtimepps-Solaris.h
patches from Dave Hart.#ifdef SYS_WINNT
from portable codetime_t
cleanup for building on newer Windows compilersntpd
exit on Windows if the computer is shutting down or restarting.bias
changes from Dave Mills.ntp_proto.c
and ntp_crypto.c
from Dave Mills.ntp_crypto.c
from Dave Mills.ntpSnmpSubAgent.c
ntpsnmpd (ntpv4-mib.mib)
INET6_ADDRSTRLEN
if it is missing.int32
, not int32_t
.sched*()
functions under OSF - link problems.caltontp.c
and calyearstart.c
from Juergen Perlinger.ntp_scanner
files.caljulian.c
and prettydate.c
from Juergen Perlinger.clockstats
ntpsnmpd
.ntpsnmpd
.libntpq.a
build.ntp_parser.[ch]
from ntp_parser.y
libntpq
-related warnings.LEAP_NOTINSYNC
->LEAP_NOWARNING
, call crypto_update()
if we have crypto_flags.configure.ac
: cleanup, add option for wintime
, and lay the groundwork for the changes needed for bug 1028.bias
and interleave
work. Separate phase and frequency discipline (for long poll intervals). Update TAI function to match current leapsecond processing.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.
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.
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.
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.
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.
The flake restrict
bit turned out to be really interesting, especially with symmetric 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.
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.