summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/ntp/Makefile4
-rw-r--r--usr.sbin/ntp/arlib/Makefile12
-rw-r--r--usr.sbin/ntp/config.h145
-rw-r--r--usr.sbin/ntp/doc/Makefile37
-rw-r--r--usr.sbin/ntp/doc/ntp-genkeys.8208
-rw-r--r--usr.sbin/ntp/libntp/Makefile27
-rw-r--r--usr.sbin/ntp/ntp-keygen/Makefile (renamed from usr.sbin/ntp/ntp-genkeys/Makefile)8
-rw-r--r--usr.sbin/ntp/ntpd/Makefile4
-rw-r--r--usr.sbin/ntp/ntpdate/Makefile4
-rw-r--r--usr.sbin/ntp/ntpdc/Makefile4
-rw-r--r--usr.sbin/ntp/ntpq/Makefile4
-rw-r--r--usr.sbin/ntp/ntptrace/Makefile17
-rwxr-xr-xusr.sbin/ntp/scripts/mkver2
-rw-r--r--usr.sbin/ntp/scripts/ntptrace62
14 files changed, 248 insertions, 290 deletions
diff --git a/usr.sbin/ntp/Makefile b/usr.sbin/ntp/Makefile
index 8f665da..0da8444 100644
--- a/usr.sbin/ntp/Makefile
+++ b/usr.sbin/ntp/Makefile
@@ -1,8 +1,8 @@
# Makefile for ntpd.
# $FreeBSD$
-SUBDIR= libntp libparse ntpd ntpdc ntpq ntpdate ntptrace \
- ntptimeset ntptime ntp-genkeys
+SUBDIR= arlib libntp libparse ntpd ntpdc ntpq ntpdate ntptrace \
+ ntptime ntp-keygen sntp
.if !defined(NOMAN)
SUBDIR+= doc
diff --git a/usr.sbin/ntp/arlib/Makefile b/usr.sbin/ntp/arlib/Makefile
new file mode 100644
index 0000000..65c3d41
--- /dev/null
+++ b/usr.sbin/ntp/arlib/Makefile
@@ -0,0 +1,12 @@
+# $FreeBSD$
+
+.PATH: ${.CURDIR}/../../../contrib/ntp/arlib
+
+LIB= ares
+
+SRCS= arlib.c
+
+CFLAGS+= -DPACKAGE=\"arlib\" -I${.CURDIR}/../../../contrib/ntp/arlib \
+ -DNS_ADDR_LIST=nsaddr_list -DVERSION=\"1.0\"
+
+.include <bsd.lib.mk>
diff --git a/usr.sbin/ntp/config.h b/usr.sbin/ntp/config.h
index 68087af..05d499e 100644
--- a/usr.sbin/ntp/config.h
+++ b/usr.sbin/ntp/config.h
@@ -2,17 +2,12 @@
/* config.h.in. Generated from configure.in by autoheader. */
/* $FreeBSD$ */
-#define ULONG_CONST(a) a ## UL
-
/* Is adjtime() accurate? */
/* #undef ADJTIME_IS_ACCURATE */
/* CHU audio/decoder? */
/* #undef AUDIO_CHU */
-/* Autokey? */
-#define AUTOKEY
-
/* Declare char *sys_errlist array */
/* #undef CHAR_SYS_ERRLIST */
@@ -50,7 +45,7 @@
/* #undef CLOCK_DCF7000 */
/* Dumb generic hh:mm:ss local clock? */
-#define CLOCK_DUMBCLOCK 1
+#define CLOCK_DUMBCLOCK 1
/* Forum Graphic GPS datating station driver? */
/* #undef CLOCK_FG */
@@ -160,7 +155,7 @@
/* TrueTime 560 IRIG-B decoder? */
/* #undef CLOCK_TT560 */
-/* Ultralink M320 WWVB receiver */
+/* Ultralink M320 WWVB receiver? */
/* #undef CLOCK_ULINK */
/* USNO modem service */
@@ -286,9 +281,6 @@
/* What is the fallback value for HZ? */
#define DEFAULT_HZ 100
-/* Use DES? */
-/* #undef DES */
-
/* synch TODR hourly? */
/* #undef DOSYNCTODR */
@@ -302,7 +294,7 @@
#define HAVE_ARPA_NAMESER_H 1
/* Do we have audio support? */
-/* #undef HAVE_AUDIO */
+#define HAVE_AUDIO 1
/* Define to 1 if you have the <bstring.h> header file. */
/* #undef HAVE_BSTRING_H */
@@ -310,6 +302,9 @@
/* Do we have the CIOGETEV ioctl (SunOS, Linux)? */
/* #undef HAVE_CIOGETEV */
+/* [Use], [/dev/clockctl?] */
+/* #undef HAVE_CLOCKCTL */
+
/* Define to 1 if you have the `clock_gettime' function. */
#define HAVE_CLOCK_GETTIME 1
@@ -322,6 +317,12 @@
/* Define to 1 if you have the <errno.h> header file. */
#define HAVE_ERRNO_H 1
+/* Define to 1 if you have the `EVP_md2' function. */
+/* #undef HAVE_EVP_MD2 */
+
+/* Define to 1 if you have the `EVP_mdc2' function. */
+/* #undef HAVE_EVP_MDC2 */
+
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
@@ -352,11 +353,14 @@
/* Define to 1 if you have the <ieeefp.h> header file. */
#define HAVE_IEEEFP_H 1
+/* ISC: Use iflist_sysctl? */
+#define HAVE_IFLIST_SYSCTL 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. */
-/* #undef HAVE_ISFINITE */
+#define HAVE_ISFINITE 1
/* Define to 1 if you have the `kvm_open' function. */
#define HAVE_KVM_OPEN 1
@@ -370,6 +374,9 @@
/* Do we have the curses library? */
/* #undef HAVE_LIBCURSES */
+/* Do we have the edit library? */
+/* #undef HAVE_LIBEDIT */
+
/* Define to 1 if you have the `elf' library (-lelf). */
/* #undef HAVE_LIBELF */
@@ -382,6 +389,12 @@
/* Define to 1 if you have the `ld' library (-lld). */
/* #undef HAVE_LIBLD */
+/* Define to 1 if you have the `md' library (-lmd). */
+#define HAVE_LIBMD 1
+
+/* Define to 1 if you have the `md5' library (-lmd5). */
+/* #undef HAVE_LIBMD5 */
+
/* Define to 1 if you have the `mld' library (-lmld). */
/* #undef HAVE_LIBMLD */
@@ -412,6 +425,12 @@
/* 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 `memcpy' function. */
#define HAVE_MEMCPY 1
@@ -434,7 +453,7 @@
#define HAVE_MKTIME 1
/* Define to 1 if you have the `mlockall' function. */
-/* #undef HAVE_MLOCKALL */
+#define HAVE_MLOCKALL 1
/* Define to 1 if you have the `mrand48' function. */
#define HAVE_MRAND48 1
@@ -460,8 +479,11 @@
/* 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
+/* #undef HAVE_NET_IF_H */
/* Define to 1 if you have the `nice' function. */
#define HAVE_NICE 1
@@ -535,6 +557,9 @@
/* 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
@@ -568,6 +593,9 @@
/* Define to 1 if you have the `srand48' function. */
#define HAVE_SRAND48 1
+/* Does struct sockaddr_storage have ss_family? */
+#define HAVE_SS_FAMILY_IN_SS 1
+
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
@@ -625,6 +653,9 @@
/* Define to 1 if you have the <sys/clkdefs.h> header file. */
/* #undef HAVE_SYS_CLKDEFS_H */
+/* 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/file.h> header file. */
#define HAVE_SYS_FILE_H 1
@@ -634,6 +665,9 @@
/* 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/lock.h> header file. */
/* #undef HAVE_SYS_LOCK_H */
@@ -667,6 +701,9 @@
/* 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
@@ -694,6 +731,9 @@
/* 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
@@ -754,6 +794,12 @@
/* Do we have the TIO serial stuff? */
/* #undef HAVE_TIO_SERIAL_STUFF */
+/* Does u_int64_t exist */
+#define HAVE_TYPE_U_INT64_T 1
+
+/* Does u_int8_t exist */
+#define HAVE_TYPE_U_INT8_T 1
+
/* Define to 1 if you have the `umask' function. */
#define HAVE_UMASK 1
@@ -790,6 +836,33 @@
/* Define to 1 if you have the `__ntp_gettime' function. */
/* #undef HAVE___NTP_GETTIME */
+/* Does struct sockaddr_storage have __ss_family? */
+/* #undef HAVE___SS_FAMILY_IN_SS */
+
+/* Should we use the IRIG sawtooth filter? */
+/* #undef IRIG_SUCKS */
+
+/* ISC: have struct if_laddrconf? */
+/* #undef ISC_PLATFORM_HAVEIF_LADDRCONF */
+
+/* ISC: have struct if_laddrreq? */
+/* #undef ISC_PLATFORM_HAVEIF_LADDRREQ */
+
+/* ISC: Have struct in6_pktinfo? */
+#define ISC_PLATFORM_HAVEIN6PKTINFO
+
+/* ISC: Have IPv6? */
+#define ISC_PLATFORM_HAVEIPV6
+
+/* ISC: struct sockaddr as sa_len? */
+#define ISC_PLATFORM_HAVESALEN
+
+/* ISC: Need in6addr_any? */
+/* #undef ISC_PLATFORM_NEEDIN6ADDRANY */
+
+/* ISC: provide inet_ntop() */
+/* #undef ISC_PLATFORM_NEEDNTOP */
+
/* Does the kernel have an FLL bug? */
/* #undef KERNEL_FLL_BUG */
@@ -808,6 +881,9 @@
/* What is the name of TICK in the kernel? */
#define K_TICK_NAME "_tick"
+/* Should we align with the NIST lockclock scheme? */
+/* #undef LOCKCLOCK */
+
/* Does the kernel support multicasting IP? */
#define MCAST 1
@@ -845,7 +921,7 @@
#define NO_PARENB_IGNPAR 1
/* Default location of crypto key info */
-#define NTP_KEYSDIR "/usr/local/etc"
+#define NTP_KEYSDIR "/etc/ntp"
/* Do we have ntp_{adj,get}time in libc? */
#define NTP_SYSCALLS_LIBC 1
@@ -857,7 +933,7 @@
#define ONCORE_SHMEM_STATUS 1
/* Use OpenSSL? */
-/* #undef OPENSSL */
+#define OPENSSL
/* Should we open the broadcast socket? */
#define OPEN_BCAST_SOCKET 1
@@ -901,9 +977,6 @@
/* Define if compiler has function prototypes */
#define PROTOTYPES 1
-/* Public key? */
-/* #undef PUBKEY */
-
/* Does qsort expect to work on "void *" stuff? */
#define QSORT_USES_VOID_P 1
@@ -919,17 +992,14 @@
/* Define as the return type of signal handlers (`int' or `void'). */
#define RETSIGTYPE void
-/* Use RSAREF? */
-/* #undef RSAREF */
-
/* Do we want the SCO clock hacks? */
/* #undef SCO5_CLOCK */
-/* The size of an `int', as computed by sizeof. */
+/* The size of a `int', as computed by sizeof. */
#define SIZEOF_INT 4
/* The size of a `long', as computed by sizeof. */
-#if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__)
+#if defined(__alpha__) || defined(__ia64__) || defined(__sparc64__) || defined(__amd64__)
#define SIZEOF_LONG 8
#else
#define SIZEOF_LONG 4
@@ -944,6 +1014,9 @@
/* Slew always? */
/* #undef SLEWALWAYS */
+/* *s*printf() functions are char* */
+/* #undef SPRINTF_CHAR */
+
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
@@ -958,12 +1031,15 @@
#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(__ia64__)
#define STR_SYSTEM "ia64-undermydesk-freebsd"
#else
#define STR_SYSTEM "i386-undermydesk-freebsd"
#endif
+
/* Buggy syscall() (Solaris2.4)? */
/* #undef SYSCALL_BUG */
@@ -994,6 +1070,9 @@
/* use UDP Wildcard Delivery? */
#define UDP_WILDCARD_DELIVERY 1
+/* How do we create unsigned long constants? */
+#define ULONG_CONST(a) a ## UL
+
/* Must we have a CTTY for fsetown? */
#define USE_FSETOWNCTTY 1
@@ -1004,11 +1083,22 @@
/* #undef USE_UDP_SIGPOLL */
/* Version number of package */
-#define VERSION "4.1.1b"
+#define VERSION "4.2.0"
+
+/* ISC: Want IPv6? */
+#define WANT_IPV6
/* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */
-/* #undef WORDS_BIGENDIAN */
+#if defined(__sparc64__)
+#define WORDS_BIGENDIAN 1
+#endif
+
+/* Handle ss_family */
+#if !defined(HAVE_SS_FAMILY_IN_SS) && defined(HAVE___SS_FAMILY_IN_SS)
+# define ss_family __ss_family
+# define ss_len __ss_len
+#endif /* !defined(HAVE_SS_FAMILY_IN_SS) && defined(HAVE_SA_FAMILY_IN_SS) */
/* Define to 1 if on AIX 3.
System headers sometimes define this.
@@ -1056,3 +1146,6 @@
/* Does the compiler like "volatile"? */
/* #undef volatile */
+
+/* XXX EAI_NODATA is deprecated but still used in 4.2.0, work around that */
+#define EAI_NODATA EAI_NONAME
diff --git a/usr.sbin/ntp/doc/Makefile b/usr.sbin/ntp/doc/Makefile
index b52cae4..fd6a195 100644
--- a/usr.sbin/ntp/doc/Makefile
+++ b/usr.sbin/ntp/doc/Makefile
@@ -4,26 +4,27 @@ MAINTAINER= sheldonh
FILESDIR= ${SHAREDIR}/doc/ntp
-FILES= accopt.htm assoc.htm audio.htm authopt.htm biblio.htm build.htm \
- clockopt.htm \
- config.htm confopt.htm copyright.htm debug.htm driver1.htm \
- driver10.htm driver11.htm driver12.htm driver16.htm driver18.htm \
- driver19.htm driver2.htm driver20.htm driver22.htm driver23.htm \
- driver24.htm driver26.htm driver27.htm driver28.htm driver29.htm \
- driver3.htm driver30.htm driver32.htm driver33.htm driver34.htm \
- driver35.htm driver36.htm driver37.htm \
- driver4.htm driver5.htm driver6.htm driver7.htm driver8.htm \
- driver9.htm exec.htm extern.htm gadget.htm hints.htm \
- howto.htm htmlprimer.htm index.htm kern.htm kernpps.htm \
- ldisc.htm measure.htm miscopt.htm monopt.htm mx4200data.htm \
- notes.htm ntpd.htm ntpdate.htm ntpdc.htm ntpq.htm ntptime.htm \
- ntptrace.htm parsedata.htm parsenew.htm patches.htm porting.htm \
- pps.htm prefer.htm qth.htm quick.htm rdebug.htm refclock.htm \
- release.htm tickadj.htm
+FILES= accopt.html assoc.html audio.html authopt.html build.html \
+ clockopt.html \
+ config.html confopt.html copyright.html debug.html driver1.html \
+ driver10.html driver11.html driver12.html driver16.html driver18.html \
+ driver19.html driver2.html driver20.html driver22.html driver23.html \
+ driver24.html driver26.html driver27.html driver28.html driver29.html \
+ driver3.html driver30.html driver32.html driver33.html driver34.html \
+ driver35.html driver36.html driver37.html \
+ driver4.html driver5.html driver6.html driver7.html driver8.html \
+ driver9.html extern.html hints.html \
+ howto.html index.html kern.html \
+ ldisc.html measure.html miscopt.html monopt.html mx4200data.html \
+ notes.html ntpd.html ntpdate.html ntpdc.html ntpq.html ntptime.html \
+ ntptrace.html parsedata.html parsenew.html patches.html porting.html \
+ pps.html prefer.html quick.html rdebug.html refclock.html \
+ release.html tickadj.html
MAN= ntp.conf.5 ntp.keys.5
-MAN+= ntp-genkeys.8 ntpd.8 ntpdate.8 ntpdc.8 ntpq.8 ntptime.8 ntptrace.8
+MAN+= ntpd.8 ntpdate.8 ntpdc.8 ntpq.8 ntptime.8 ntptrace.8
-.PATH: ${.CURDIR}/../../../contrib/ntp/html
+.PATH: ${.CURDIR}/../../../contrib/ntp/html \
+ ${.CURDIR}/../../../contrib/ntp/html/drivers
.include <bsd.prog.mk>
diff --git a/usr.sbin/ntp/doc/ntp-genkeys.8 b/usr.sbin/ntp/doc/ntp-genkeys.8
deleted file mode 100644
index c5c41dd..0000000
--- a/usr.sbin/ntp/doc/ntp-genkeys.8
+++ /dev/null
@@ -1,208 +0,0 @@
-.\"
-.\" $FreeBSD$
-.\"
-.Dd August 2, 2001
-.Dt NTP_GENKEYS 8
-.Os
-.Sh NAME
-.Nm ntp-genkeys
-.Nd generate public and private keys
-.Sh SYNOPSIS
-.Nm
-.Op Fl dfhlnt
-.Op Fl c Ar conffile
-.Op Fl g Ar target
-.Op Fl k Ar keyfile
-.Sh DESCRIPTION
-The
-.Nm
-utility generates random keys used by either or both the
-NTPv3/NTPv4 symmetric key or the NTPv4 public key (Autokey)
-cryptographic authentication schemes.
-.Pp
-The following options are available:
-.Bl -tag -width indent
-.It Fl c Ar conffile
-Location of
-.Xr ntp.conf 5
-file.
-.It Fl d
-enable debug messages (can be used multiple times)
-.It Fl f
-force installation of generated keys.
-.It Fl g target
-Generate file or files indicated by the characters in the
-.Ar target
-string:
-.Bl -tag -width X
-.It Li d
-Generate D-H parameter file.
-.It Li m
-Generate MD5 key file.
-.It Li r
-Generate RSA keys.
-.El
-.It Fl h
-Build keys here (current directory).
-Implies
-.Fl l .
-.It Fl k Ar keyfile
-Location of key file.
-.It Fl l
-Do not make the symlinks.
-.It Fl n
-Do not actually do anything, just say what would be done.
-.It Fl t
-Trash the (old) files at the end of symlink.
-.El
-.Pp
-By default the program
-generates the
-.Xr ntp.keys 5
-file containing 16 random symmetric
-keys.
-In addition, if the
-rsaref20
-package is configured
-for the software build, the program generates cryptographic values
-used by the Autokey scheme.
-These values are incorporated as a set
-of three files,
-.Pa ntpkey
-containing the RSA private key,
-.Pa ntpkey_ Ns Ar host
-containing the RSA public key, where
-.Ar host
-is the DNS name of the generating machine, and
-.Pa ntpkey_dh
-containing the parameters for the Diffie-Hellman
-key-agreement algorithm.
-All files and are in printable ASCII
-format.
-A timestamp in NTP seconds is appended to each.
-Since the
-algorithms are seeded by the system clock, each run of this program
-produces a different file and file name.
-.Pp
-The
-.Xr ntp.keys 5
-file contains 16 MD5 keys.
-Each key
-consists of 16 characters randomized over the ASCII 95-character
-printing subset.
-The file is read by the daemon at the location
-specified by the
-.Ic keys
-configuration file command and made
-visible only to root.
-An additional key consisting of an easily
-remembered password should be added by hand for use with the
-.Xr ntpq 8
-and
-.Xr ntpdc 8
-programs.
-The file must be
-distributed by secure means to other servers and clients sharing
-the same security compartment.
-While the key identifiers for MD5
-and DES keys must be in the range 1-65534, inclusive, the
-.Nm
-utility uses only the identifiers from 1 to
-16.
-The key identifier for each association is specified as the key
-argument in the
-.Ic server
-or
-.Ic peer
-configuration file command.
-.Pp
-The
-.Pa ntpkey
-file contains the RSA private key.
-It is
-read by the daemon at the location specified by the
-.Ar privatekey
-argument of the
-.Ic crypto
-configuration
-file command and made visible only to root.
-This file is useful
-only to the machine that generated it and never shared with any
-other daemon or application program.
-.Pp
-The
-.Pa ntpkey_ Ns Ar host
-file contains the RSA public
-key, where
-.Ar host
-is the DNS name of the host that
-generated it.
-The file is read by the daemon at the location
-specified by the
-.Ar publickey
-argument to the
-.Ic server
-or
-.Ic peer
-configuration file command.
-This file can be
-widely distributed and stored without using secure means, since the
-data are public values.
-.Pp
-The
-.Pa ntp_dh
-file contains two Diffie-Hellman parameters:
-the prime modulus and the generator.
-The file is read by the daemon
-at the location specified by the
-.Ar dhparams
-argument of the
-.Ic crypto
-configuration file command.
-The file can be
-distributed by insecure means to other servers and clients sharing
-the same key agreement compartment, since the data are public
-values.
-.Pp
-The file formats begin with two lines, the first containing the
-generating system DNS name and the second the datestamp.
-Lines
-beginning with
-.Ql #
-are considered comments and ignored by
-the daemon.
-In the
-.Xr ntp.keys 5
-file, the next 16 lines
-contain the MD5 keys in order.
-If necessary, this file can be
-further customized by an ordinary text editor.
-The format is
-described in the following section.
-In the
-.Pa ntpkey
-and
-.Pa ntpkey_ Ns Ar host
-files, the next line contains the
-modulus length in bits followed by the key as a PEM encoded string.
-In the
-.Pa ntpkey_dh
-file, the next line contains the prime
-length in bytes followed by the prime as a PEM encoded string, and
-the next and final line contains the generator length in bytes
-followed by the generator as a PEM encoded string.
-.Pp
-Note: See the file
-.Pa ./source/rsaref.h
-in the
-rsaref20
-package for explanation of return values, if
-necessary.
-.Sh SEE ALSO
-.Xr ntp.keys 5 ,
-.Xr ntpdc 8 ,
-.Xr ntpq 8
-.Sh BUGS
-It can take quite a while to generate the RSA public/private key
-pair and Diffie-Hellman parameters, from a few seconds on a modern
-workstation to several minutes on older machines.
diff --git a/usr.sbin/ntp/libntp/Makefile b/usr.sbin/ntp/libntp/Makefile
index 37ef176..c6b451d 100644
--- a/usr.sbin/ntp/libntp/Makefile
+++ b/usr.sbin/ntp/libntp/Makefile
@@ -1,13 +1,14 @@
# $FreeBSD$
-.PATH: ${.CURDIR}/../../../contrib/ntp/libntp
+.PATH: ${.CURDIR}/../../../contrib/ntp/libntp \
+ ${.CURDIR}/../../../contrib/ntp/libisc
LIB= ntp
INTERNALLIB= true
-SRCS= a_md5encrypt.c adjtime.c atoint.c atolfp.c \
- atouint.c audio.c authencrypt.c authkeys.c \
- authparity.c authreadkeys.c authusekey.c binio.c \
+NTP_SRCS= a_md5encrypt.c adjtime.c atoint.c atolfp.c \
+ atouint.c audio.c authkeys.c \
+ authreadkeys.c authusekey.c binio.c \
buftvtots.c caljulian.c calleapwhen.c caltontp.c \
calyearstart.c clocktime.c clocktypes.c decodenetnum.c \
dofptoa.c dolfptoa.c emalloc.c findconfig.c \
@@ -16,12 +17,18 @@ SRCS= a_md5encrypt.c adjtime.c atoint.c atolfp.c \
ieee754io.c inttoa.c iosignal.c lib_strbuf.c \
machines.c md5c.c memmove.c mfp_mul.c \
mfptoa.c mfptoms.c modetoa.c mstolfp.c \
- msutotsf.c msyslog.c netof.c numtoa.c \
- numtohost.c octtoint.c prettydate.c ranny.c \
- recvbuff.c refnumtoa.c statestr.c syssignal.c \
- systime.c tsftomsu.c tstotv.c tvtoa.c \
- tvtots.c uglydate.c uinttoa.c utvtoa.c \
- ymd2yd.c
+ msutotsf.c msyslog.c netof.c ntp_rfc2553.c \
+ numtoa.c numtohost.c octtoint.c prettydate.c \
+ ranny.c recvbuff.c refnumtoa.c socktoa.c \
+ socktohost.c strstr.c systime_s.c statestr.c \
+ syssignal.c systime.c tsftomsu.c tstotv.c \
+ tvtoa.c tvtots.c uglydate.c uinttoa.c \
+ utvtoa.c ymd2yd.c
+
+ISC_SRCS= assertions.c error.c inet_ntop.c interfaceiter.c \
+ isc_strerror.c lib.c mem.c msgcat.c net.c
+
+SRCS= ${NTP_SRCS} ${ISC_SRCS}
CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
diff --git a/usr.sbin/ntp/ntp-genkeys/Makefile b/usr.sbin/ntp/ntp-keygen/Makefile
index 10a8106..891d6be 100644
--- a/usr.sbin/ntp/ntp-genkeys/Makefile
+++ b/usr.sbin/ntp/ntp-keygen/Makefile
@@ -3,13 +3,13 @@
.PATH: ${.CURDIR}/../../../contrib/ntp/util \
${.CURDIR}/../../../contrib/ntp/ntpd
-PROG= ntp-genkeys
+PROG= ntp-keygen
NOMAN= yes
-SRCS= ntp-genkeys.c ntp_config.c
+SRCS= ntp-keygen.c
CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
-DPADD= ${LIBNTP}
-LDADD= ${LIBNTP}
+DPADD= ${LIBNTP} ${LIBMD} ${LIBCRYPTO}
+LDADD= ${LIBNTP} -lmd -lcrypto
.include <bsd.prog.mk>
diff --git a/usr.sbin/ntp/ntpd/Makefile b/usr.sbin/ntp/ntpd/Makefile
index fc97856..027b9b9 100644
--- a/usr.sbin/ntp/ntpd/Makefile
+++ b/usr.sbin/ntp/ntpd/Makefile
@@ -28,8 +28,8 @@ SRCS= cmd_args.c map_vme.c ntp_config.c \
CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
-DPADD= ${LIBPARSE} ${LIBNTP} ${LIBM}
-LDADD= ${LIBPARSE} ${LIBNTP} -lm
+DPADD= ${LIBPARSE} ${LIBNTP} ${LIBM} ${LIBCRYPTO} ${LIBMD}
+LDADD= ${LIBPARSE} ${LIBNTP} -lm -lcrypto -lmd
CLEANFILES+= .version version.c
diff --git a/usr.sbin/ntp/ntpdate/Makefile b/usr.sbin/ntp/ntpdate/Makefile
index af0db44..eba0fdf 100644
--- a/usr.sbin/ntp/ntpdate/Makefile
+++ b/usr.sbin/ntp/ntpdate/Makefile
@@ -8,8 +8,8 @@ SRCS= ntpdate.c version.c
CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
-DPADD= ${LIBNTP}
-LDADD= ${LIBNTP}
+DPADD= ${LIBNTP} ${LIBMD}
+LDADD= ${LIBNTP} -lmd
CLEANFILES+= .version version.c
diff --git a/usr.sbin/ntp/ntpdc/Makefile b/usr.sbin/ntp/ntpdc/Makefile
index d17f0ae..9bb3a54 100644
--- a/usr.sbin/ntp/ntpdc/Makefile
+++ b/usr.sbin/ntp/ntpdc/Makefile
@@ -8,8 +8,8 @@ SRCS= ntpdc.c ntpdc_ops.c version.c
CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
-DPADD= ${LIBNTP} ${LIBREADLINE} ${LIBTERMCAP}
-LDADD= ${LIBNTP} -lreadline -ltermcap
+DPADD= ${LIBNTP} ${LIBREADLINE} ${LIBTERMCAP} ${LIBMD}
+LDADD= ${LIBNTP} -lreadline -ltermcap -lmd
CLEANFILES+= .version version.c
diff --git a/usr.sbin/ntp/ntpq/Makefile b/usr.sbin/ntp/ntpq/Makefile
index f17aa63..67687e9 100644
--- a/usr.sbin/ntp/ntpq/Makefile
+++ b/usr.sbin/ntp/ntpq/Makefile
@@ -10,8 +10,8 @@ SRCS= ntpq.c ntpq_ops.c version.c
CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
-DPADD= ${LIBNTP} ${LIBREADLINE} ${LIBTERMCAP}
-LDADD= ${LIBNTP} -lreadline -ltermcap
+DPADD= ${LIBNTP} ${LIBREADLINE} ${LIBTERMCAP} ${LIBMD}
+LDADD= ${LIBNTP} -lreadline -ltermcap -lmd
CLEANFILES+= .version version.c
diff --git a/usr.sbin/ntp/ntptrace/Makefile b/usr.sbin/ntp/ntptrace/Makefile
index 297339f..e570a97 100644
--- a/usr.sbin/ntp/ntptrace/Makefile
+++ b/usr.sbin/ntp/ntptrace/Makefile
@@ -1,19 +1,10 @@
# $FreeBSD$
-.PATH: ${.CURDIR}/../../../contrib/ntp/ntptrace
+.PATH: ${.CURDIR}/../scripts
-PROG= ntptrace
-NOMAN= yes
-SRCS= ntptrace.c version.c
-
-CFLAGS+= -I${.CURDIR}/../../../contrib/ntp/include -I${.CURDIR}/../
-
-DPADD= ${LIBNTP}
-LDADD= ${LIBNTP}
+SCRIPTS= ntptrace
-CLEANFILES+= .version version.c
-
-version.c:
- sh -e ${.CURDIR}/../scripts/mkver ntptrace
+SCRIPTSNAME= ntptrace
+NOMAN= yes
.include <bsd.prog.mk>
diff --git a/usr.sbin/ntp/scripts/mkver b/usr.sbin/ntp/scripts/mkver
index a418146..d54386d 100755
--- a/usr.sbin/ntp/scripts/mkver
+++ b/usr.sbin/ntp/scripts/mkver
@@ -6,7 +6,7 @@ PROG=${1-UNKNOWN}
ConfStr="$PROG"
-ConfStr="$ConfStr 4.1.1b"
+ConfStr="$ConfStr 4.2.0"
case "$CSET" in
'') ;;
diff --git a/usr.sbin/ntp/scripts/ntptrace b/usr.sbin/ntp/scripts/ntptrace
new file mode 100644
index 0000000..8a895c4
--- /dev/null
+++ b/usr.sbin/ntp/scripts/ntptrace
@@ -0,0 +1,62 @@
+#! /usr/local/bin/perl -w
+#
+# $FreeBSD$
+
+# John Hay -- John.Hay@icomtek.csir.co.za / jhay@FreeBSD.org
+
+use Socket;
+use Getopt::Std;
+use vars qw($opt_n);
+
+$ntpq = "ntpq";
+
+getopts('n');
+
+$dodns = 1;
+$dodns = 0 if (defined($opt_n));
+
+$host = shift;
+$host ||= "127.0.0.1";
+
+for (;;) {
+ $stratum = 255;
+ $cmd = "$ntpq -n -c rv $host";
+ open(PH, $cmd . "|") || die "failed to start command $cmd: $!";
+ while (<PH>) {
+ $stratum = $1 if (/stratum=(\d+)/);
+ $peer = $1 if (/peer=(\d+)/);
+ # Very old servers report phase and not offset.
+ $offset = $1 if (/(?:offset|phase)=([^\s,]+)/);
+ $rootdelay = $1 if (/rootdelay=([^\s,]+)/);
+ $refid = $1 if (/refid=([^\s,]+)/);
+ }
+ close(PH) || die "$cmd failed";
+ last if ($stratum == 255);
+ $offset /= 1000;
+ $rootdelay /= 1000;
+ $dhost = $host;
+ # Only do lookups of IPv4 addresses. The standard lookup functions
+ # of perl only do IPv4 and I don't know if we should require extras.
+ if ($dodns && $host =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/) {
+ $iaddr = inet_aton($host);
+ $name = (gethostbyaddr($iaddr, AF_INET))[0];
+ $dhost = $name if (defined($name));
+ }
+ printf("%s: stratum %d, offset %f, root distance %f",
+ $dhost, $stratum, $offset, $rootdelay);
+ printf(", refid '%s'", $refid) if ($stratum == 1);
+ printf("\n");
+ last if ($stratum == 0 || $stratum == 1 || $stratum == 16);
+ last if ($refid =~ /^127\.127\.\d{1,3}\.\d{1,3}$/);
+
+ $cmd = "$ntpq -n -c \"pstat $peer\" $host";
+ open(PH, $cmd . "|") || die "failed to start command $cmd: $!";
+ $thost = "";
+ while (<PH>) {
+ $thost = $1, last if (/srcadr=(\S+),/);
+ }
+ close(PH) || die "$cmd failed";
+ last if ($thost eq "");
+ $host = $thost;
+}
+
OpenPOWER on IntegriCloud