aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCy Schubert <cy@FreeBSD.org>2015-02-05 20:53:33 +0000
committerCy Schubert <cy@FreeBSD.org>2015-02-05 20:53:33 +0000
commitf7cba3a80d9ebefc57776fffd17a4ae68f72e494 (patch)
treedc1c5074828f0c5fafe2fb8f5599339dfdc5bc97
parent44a728f815af203cd7a91db83b06325818433463 (diff)
downloadsrc-f7cba3a80d9ebefc57776fffd17a4ae68f72e494.tar.gz
src-f7cba3a80d9ebefc57776fffd17a4ae68f72e494.zip
Vendor import ntp-4.2.8p1.vendor/ntp/4.2.8p1
Approved by: roberto
Notes
Notes: svn path=/vendor/ntp/dist/; revision=278284 svn path=/vendor/ntp/4.2.8p1/; revision=278285; tag=vendor/ntp/4.2.8p1
-rw-r--r--COPYRIGHT40
-rw-r--r--ChangeLog74
-rw-r--r--CommitLog3547
-rw-r--r--Makefile.am5
-rw-r--r--Makefile.in8
-rw-r--r--NEWS111
-rw-r--r--adjtimed/Makefile.in3
-rwxr-xr-xbuild8
-rw-r--r--clockstuff/Makefile.in3
-rw-r--r--config.h.in6
-rwxr-xr-xconfigure627
-rw-r--r--configure.ac8
-rw-r--r--html/confopt.html4
-rw-r--r--html/copyright.html38
-rw-r--r--html/drivers/driver28.html136
-rw-r--r--html/pic/9400n.jpgbin0 -> 5736 bytes
-rw-r--r--html/pic/alice11.gifbin0 -> 18003 bytes
-rw-r--r--html/pic/alice13.gifbin0 -> 11516 bytes
-rw-r--r--html/pic/alice15.gifbin0 -> 26328 bytes
-rw-r--r--html/pic/alice23.gifbin0 -> 7753 bytes
-rw-r--r--html/pic/alice31.gifbin0 -> 13824 bytes
-rw-r--r--html/pic/alice32.gifbin0 -> 17168 bytes
-rw-r--r--html/pic/alice35.gifbin0 -> 8968 bytes
-rw-r--r--html/pic/alice38.gifbin0 -> 10296 bytes
-rw-r--r--html/pic/alice44.gifbin0 -> 19897 bytes
-rw-r--r--html/pic/alice47.gifbin0 -> 10771 bytes
-rw-r--r--html/pic/alice51.gifbin0 -> 12403 bytes
-rw-r--r--html/pic/alice61.gifbin0 -> 11269 bytes
-rw-r--r--html/pic/barnstable.gifbin0 -> 2946 bytes
-rw-r--r--html/pic/beaver.gifbin0 -> 2831 bytes
-rw-r--r--html/pic/boom3.gifbin0 -> 11042 bytes
-rw-r--r--html/pic/boom3a.gifbin0 -> 18300 bytes
-rw-r--r--html/pic/boom4.gifbin0 -> 16157 bytes
-rw-r--r--html/pic/broad.gifbin0 -> 5728 bytes
-rw-r--r--html/pic/bustardfly.gifbin0 -> 8476 bytes
-rw-r--r--html/pic/c51.jpgbin0 -> 16429 bytes
-rw-r--r--html/pic/description.jpgbin0 -> 34170 bytes
-rw-r--r--html/pic/discipline.gifbin0 -> 6836 bytes
-rw-r--r--html/pic/dogsnake.gifbin0 -> 5445 bytes
-rw-r--r--html/pic/driver29.gifbin0 -> 11723 bytes
-rw-r--r--html/pic/driver43_1.gifbin0 -> 38818 bytes
-rw-r--r--html/pic/driver43_2.jpgbin0 -> 6576 bytes
-rw-r--r--html/pic/fg6021.gifbin0 -> 21593 bytes
-rw-r--r--html/pic/fg6039.jpgbin0 -> 7383 bytes
-rw-r--r--html/pic/fig_3_1.gifbin0 -> 10428 bytes
-rw-r--r--html/pic/flatheads.gifbin0 -> 13085 bytes
-rw-r--r--html/pic/flt1.gifbin0 -> 9045 bytes
-rw-r--r--html/pic/flt2.gifbin0 -> 3148 bytes
-rw-r--r--html/pic/flt3.gifbin0 -> 1847 bytes
-rw-r--r--html/pic/flt4.gifbin0 -> 3876 bytes
-rw-r--r--html/pic/flt5.gifbin0 -> 10609 bytes
-rw-r--r--html/pic/flt6.gifbin0 -> 15563 bytes
-rw-r--r--html/pic/flt7.gifbin0 -> 7848 bytes
-rw-r--r--html/pic/flt8.gifbin0 -> 5969 bytes
-rw-r--r--html/pic/flt9.gifbin0 -> 8948 bytes
-rw-r--r--html/pic/freq1211.gifbin0 -> 11428 bytes
-rw-r--r--html/pic/gadget.jpgbin0 -> 26341 bytes
-rw-r--r--html/pic/gps167.jpgbin0 -> 15589 bytes
-rw-r--r--html/pic/group.gifbin0 -> 2756 bytes
-rw-r--r--html/pic/hornraba.gifbin0 -> 8790 bytes
-rw-r--r--html/pic/igclock.gifbin0 -> 8985 bytes
-rwxr-xr-xhtml/pic/neoclock4x.gifbin0 -> 14977 bytes
-rw-r--r--html/pic/offset1211.gifbin0 -> 25493 bytes
-rw-r--r--html/pic/oncore_evalbig.gifbin0 -> 7904 bytes
-rw-r--r--html/pic/oncore_remoteant.jpgbin0 -> 4828 bytes
-rw-r--r--html/pic/oncore_utplusbig.gifbin0 -> 10117 bytes
-rw-r--r--html/pic/oz2.gifbin0 -> 8225 bytes
-rw-r--r--html/pic/panda.gifbin0 -> 1660 bytes
-rw-r--r--html/pic/pd_om006.gifbin0 -> 16704 bytes
-rw-r--r--html/pic/pd_om011.gifbin0 -> 12848 bytes
-rw-r--r--html/pic/peer.gifbin0 -> 4936 bytes
-rw-r--r--html/pic/pogo.gifbin0 -> 1918 bytes
-rw-r--r--html/pic/pogo1a.gifbin0 -> 18769 bytes
-rw-r--r--html/pic/pogo3a.gifbin0 -> 3657 bytes
-rw-r--r--html/pic/pogo4.gifbin0 -> 3213 bytes
-rw-r--r--html/pic/pogo5.gifbin0 -> 5819 bytes
-rw-r--r--html/pic/pogo6.gifbin0 -> 5902 bytes
-rw-r--r--html/pic/pogo7.gifbin0 -> 13817 bytes
-rw-r--r--html/pic/pogo8.gifbin0 -> 7820 bytes
-rw-r--r--html/pic/pzf509.jpgbin0 -> 13011 bytes
-rw-r--r--html/pic/pzf511.jpgbin0 -> 20370 bytes
-rw-r--r--html/pic/rabbit.gifbin0 -> 3342 bytes
-rw-r--r--html/pic/radio2.jpgbin0 -> 17006 bytes
-rw-r--r--html/pic/sheepb.jpgbin0 -> 20295 bytes
-rw-r--r--html/pic/stack1a.jpgbin0 -> 29655 bytes
-rw-r--r--html/pic/stats.gifbin0 -> 12168 bytes
-rw-r--r--html/pic/sx5.gifbin0 -> 20470 bytes
-rw-r--r--html/pic/thunderbolt.jpgbin0 -> 38718 bytes
-rw-r--r--html/pic/time1.gifbin0 -> 4507 bytes
-rw-r--r--html/pic/tonea.gifbin0 -> 12002 bytes
-rw-r--r--html/pic/tribeb.gifbin0 -> 30287 bytes
-rw-r--r--html/pic/wingdorothy.gifbin0 -> 10849 bytes
-rw-r--r--include/Makefile.in3
-rw-r--r--include/audio.h2
-rwxr-xr-xinclude/icom.h2
-rw-r--r--include/isc/Makefile.in3
-rw-r--r--include/ntp_config.h5
-rw-r--r--include/ntp_filegen.h2
-rw-r--r--include/ntp_stdlib.h10
-rw-r--r--include/ntpd.h6
-rw-r--r--include/timepps-Solaris.h2
-rw-r--r--kernel/Makefile.in3
-rw-r--r--kernel/sys/Makefile.in3
-rw-r--r--lib/isc/backtrace.c8
-rw-r--r--lib/isc/event.c4
-rw-r--r--lib/isc/include/isc/backtrace.h4
-rw-r--r--lib/isc/include/isc/socket.h14
-rw-r--r--lib/isc/log.c3
-rw-r--r--lib/isc/netaddr.c3
-rw-r--r--lib/isc/sockaddr.c12
-rw-r--r--lib/isc/unix/ifiter_getifaddrs.c10
-rw-r--r--libjsmn/jsmn.c5
-rw-r--r--libntp/Makefile.in3
-rw-r--r--libntp/atoint.c2
-rw-r--r--libntp/atolfp.c10
-rw-r--r--libntp/atouint.c2
-rw-r--r--libntp/audio.c24
-rw-r--r--libntp/authkeys.c3
-rw-r--r--libntp/authreadkeys.c8
-rw-r--r--libntp/emalloc.c2
-rw-r--r--libntp/hextoint.c2
-rw-r--r--libntp/hextolfp.c4
-rw-r--r--libntp/humandate.c4
-rw-r--r--libntp/icom.c4
-rw-r--r--libntp/modetoa.c6
-rw-r--r--libntp/mstolfp.c10
-rw-r--r--libntp/ntp_calendar.c6
-rw-r--r--libntp/ntp_crypto_rnd.c17
-rw-r--r--libntp/ntp_intres.c19
-rw-r--r--libntp/ntp_lineedit.c13
-rw-r--r--libntp/octtoint.c2
-rw-r--r--libntp/prettydate.c14
-rw-r--r--libntp/ssl_init.c4
-rw-r--r--libntp/timetoa.c9
-rw-r--r--libparse/Makefile.am32
-rw-r--r--libparse/Makefile.in32
-rw-r--r--libparse/clk_meinberg.c2
-rw-r--r--libparse/clk_rawdcf.c20
-rw-r--r--libparse/data_mbg.c6
-rw-r--r--libparse/info_trimble.c6
-rw-r--r--libparse/mkinfo_rcmd.sed2
-rw-r--r--libparse/mkinfo_scmd.sed2
-rw-r--r--ntpd/Makefile.am2
-rw-r--r--ntpd/Makefile.in8
-rw-r--r--ntpd/invoke-ntp.conf.texi16
-rw-r--r--ntpd/invoke-ntp.keys.texi2
-rw-r--r--ntpd/invoke-ntpd.texi4
-rw-r--r--ntpd/keyword-gen-utd2
-rw-r--r--ntpd/keyword-gen.c3
-rw-r--r--ntpd/ntp.conf.5man25
-rw-r--r--ntpd/ntp.conf.5mdoc22
-rw-r--r--ntpd/ntp.conf.def14
-rw-r--r--ntpd/ntp.conf.html15
-rw-r--r--ntpd/ntp.conf.man.in25
-rw-r--r--ntpd/ntp.conf.mdoc.in22
-rw-r--r--ntpd/ntp.keys.5man8
-rw-r--r--ntpd/ntp.keys.5mdoc8
-rw-r--r--ntpd/ntp.keys.html2
-rw-r--r--ntpd/ntp.keys.man.in8
-rw-r--r--ntpd/ntp.keys.mdoc.in8
-rw-r--r--ntpd/ntp_config.c46
-rw-r--r--ntpd/ntp_control.c159
-rw-r--r--ntpd/ntp_crypto.c141
-rw-r--r--ntpd/ntp_filegen.c2
-rw-r--r--ntpd/ntp_io.c113
-rw-r--r--ntpd/ntp_keyword.h1183
-rw-r--r--ntpd/ntp_leapsec.c5
-rw-r--r--ntpd/ntp_loopfilter.c52
-rw-r--r--ntpd/ntp_parser.c2007
-rw-r--r--ntpd/ntp_parser.h402
-rw-r--r--ntpd/ntp_parser.y3
-rw-r--r--ntpd/ntp_proto.c27
-rw-r--r--ntpd/ntp_request.c17
-rw-r--r--ntpd/ntp_restrict.c4
-rw-r--r--ntpd/ntp_scanner.c28
-rw-r--r--ntpd/ntp_util.c4
-rw-r--r--ntpd/ntpd-opts.c500
-rw-r--r--ntpd/ntpd-opts.h10
-rw-r--r--ntpd/ntpd.1ntpdman10
-rw-r--r--ntpd/ntpd.1ntpdmdoc8
-rw-r--r--ntpd/ntpd.c8
-rw-r--r--ntpd/ntpd.html4
-rw-r--r--ntpd/ntpd.man.in10
-rw-r--r--ntpd/ntpd.mdoc.in8
-rw-r--r--ntpd/refclock_acts.c4
-rw-r--r--ntpd/refclock_arc.c6
-rw-r--r--ntpd/refclock_chu.c4
-rw-r--r--ntpd/refclock_gpsdjson.c14
-rw-r--r--ntpd/refclock_heath.c2
-rw-r--r--ntpd/refclock_irig.c4
-rw-r--r--ntpd/refclock_jjy.c45
-rw-r--r--ntpd/refclock_jupiter.c109
-rw-r--r--ntpd/refclock_mx4200.c6
-rw-r--r--ntpd/refclock_neoclock4x.c14
-rw-r--r--ntpd/refclock_nmea.c15
-rw-r--r--ntpd/refclock_oncore.c160
-rw-r--r--ntpd/refclock_parse.c456
-rw-r--r--ntpd/refclock_pcf.c2
-rw-r--r--ntpd/refclock_shm.c200
-rw-r--r--ntpd/refclock_true.c1
-rw-r--r--ntpd/refclock_wwv.c6
-rw-r--r--ntpdate/Makefile.in3
-rw-r--r--ntpdate/ntpdate.c2
-rw-r--r--ntpdc/Makefile.in3
-rw-r--r--ntpdc/invoke-ntpdc.texi4
-rw-r--r--ntpdc/ntpdc-opts.c236
-rw-r--r--ntpdc/ntpdc-opts.h10
-rw-r--r--ntpdc/ntpdc.1ntpdcman8
-rw-r--r--ntpdc/ntpdc.1ntpdcmdoc6
-rw-r--r--ntpdc/ntpdc.c72
-rw-r--r--ntpdc/ntpdc.h2
-rw-r--r--ntpdc/ntpdc.html4
-rw-r--r--ntpdc/ntpdc.man.in8
-rw-r--r--ntpdc/ntpdc.mdoc.in6
-rw-r--r--ntpdc/ntpdc_ops.c12
-rw-r--r--ntpq/Makefile.in3
-rw-r--r--ntpq/invoke-ntpq.texi4
-rw-r--r--ntpq/ntpq-opts.c234
-rw-r--r--ntpq/ntpq-opts.h10
-rw-r--r--ntpq/ntpq-subs.c215
-rw-r--r--ntpq/ntpq.1ntpqman10
-rw-r--r--ntpq/ntpq.1ntpqmdoc8
-rw-r--r--ntpq/ntpq.c75
-rw-r--r--ntpq/ntpq.h2
-rw-r--r--ntpq/ntpq.html4
-rw-r--r--ntpq/ntpq.man.in10
-rw-r--r--ntpq/ntpq.mdoc.in8
-rw-r--r--ntpsnmpd/Makefile.in3
-rw-r--r--ntpsnmpd/invoke-ntpsnmpd.texi4
-rw-r--r--ntpsnmpd/netsnmp_daemonize.c1
-rw-r--r--ntpsnmpd/ntp_snmp.h3
-rw-r--r--ntpsnmpd/ntpsnmpd-opts.c158
-rw-r--r--ntpsnmpd/ntpsnmpd-opts.h10
-rw-r--r--ntpsnmpd/ntpsnmpd.1ntpsnmpdman8
-rw-r--r--ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc6
-rw-r--r--ntpsnmpd/ntpsnmpd.html2
-rw-r--r--ntpsnmpd/ntpsnmpd.man.in8
-rw-r--r--ntpsnmpd/ntpsnmpd.mdoc.in6
-rw-r--r--packageinfo.sh2
-rw-r--r--parseutil/Makefile.in3
-rw-r--r--ports/winnt/include/arpa/inet.h4
-rw-r--r--ports/winnt/include/clockstuff.h44
-rw-r--r--ports/winnt/include/config.h560
-rw-r--r--ports/winnt/include/gaa_compat.h771
-rw-r--r--ports/winnt/include/hopf_PCI_io.h91
-rw-r--r--ports/winnt/include/netdb.h4
-rw-r--r--ports/winnt/include/ntp_iocompletionport.h27
-rw-r--r--ports/winnt/include/ntp_timer.h6
-rw-r--r--ports/winnt/include/ntservice.h31
-rw-r--r--ports/winnt/include/stdint.h244
-rw-r--r--ports/winnt/include/stdnoreturn.h61
-rw-r--r--ports/winnt/include/sys/ioctl.h11
-rw-r--r--ports/winnt/include/sys/param.h4
-rw-r--r--ports/winnt/include/sys/resource.h10
-rw-r--r--ports/winnt/include/sys/signal.h4
-rw-r--r--ports/winnt/include/sys/time.h25
-rw-r--r--ports/winnt/include/sys/wait.h4
-rw-r--r--ports/winnt/include/syslog.h82
-rw-r--r--ports/winnt/include/termios.h214
-rw-r--r--ports/winnt/include/timepps.h811
-rw-r--r--ports/winnt/include/unistd.h4
-rw-r--r--ports/winnt/include/win32_io.h7
-rw-r--r--ports/winnt/instsrv/instsrv.c461
-rw-r--r--ports/winnt/libntp/MSG00001.binbin0 -> 104 bytes
-rw-r--r--ports/winnt/libntp/SetSystemTime.c34
-rw-r--r--ports/winnt/libntp/getclock.c63
-rw-r--r--ports/winnt/libntp/messages.h199
-rw-r--r--ports/winnt/libntp/messages.mc161
-rw-r--r--ports/winnt/libntp/messages.rc2
-rw-r--r--ports/winnt/libntp/randfile.c109
-rw-r--r--ports/winnt/libntp/setpriority.c76
-rw-r--r--ports/winnt/libntp/syslog.c219
-rw-r--r--ports/winnt/libntp/termios.c789
-rw-r--r--ports/winnt/libntp/util_clockstuff.c26
-rw-r--r--ports/winnt/libntp/win32_io.c81
-rw-r--r--ports/winnt/ntpd/hopf_PCI_io.c335
-rw-r--r--ports/winnt/ntpd/nt_clockstuff.c1748
-rw-r--r--ports/winnt/ntpd/ntp_iocompletionport.c1639
-rw-r--r--ports/winnt/ntpd/ntservice.c321
-rw-r--r--ports/winnt/ntptrace/ntptrace.dsp153
-rw-r--r--ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.h714
-rw-r--r--ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.txt52
-rw-r--r--ports/winnt/ppsapi/loopback/src/loopback-ppsapi.c465
-rw-r--r--ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def9
-rw-r--r--ports/winnt/ppsapi/loopback/src/loopback-ppsapi.h49
-rw-r--r--ports/winnt/ppsapi/loopback/src/sys/time.h18
-rw-r--r--ports/winnt/ppsapi/loopback/src/timepps.h805
-rw-r--r--ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.c382
-rw-r--r--ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.def9
-rw-r--r--ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.h22
-rw-r--r--ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.sln19
-rw-r--r--ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.vcproj227
-rw-r--r--ports/winnt/ppsapi/skelprov/sys/time.h18
-rwxr-xr-xports/winnt/scripts/mkver.bat439
-rw-r--r--ports/winnt/vs2005/Instsrv.vcproj244
-rw-r--r--ports/winnt/vs2005/libntp.vcproj864
-rw-r--r--ports/winnt/vs2005/ntp.sln70
-rw-r--r--ports/winnt/vs2005/ntpd.vcproj1893
-rw-r--r--ports/winnt/vs2005/ntpdate.vcproj294
-rw-r--r--ports/winnt/vs2005/ntpdc.vcproj338
-rw-r--r--ports/winnt/vs2005/ntpkeygen.vcproj378
-rw-r--r--ports/winnt/vs2005/ntpq.vcproj338
-rw-r--r--ports/winnt/vs2008/instsrv/instsrv.vcproj258
-rw-r--r--ports/winnt/vs2008/libntp/libntp.vcproj952
-rw-r--r--ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj256
-rw-r--r--ports/winnt/vs2008/ntp-keygen/ntp-keygen.vcproj335
-rw-r--r--ports/winnt/vs2008/ntp.sln90
-rw-r--r--ports/winnt/vs2008/ntpd-keyword-gen/ntpd-keyword-gen.vcproj273
-rw-r--r--ports/winnt/vs2008/ntpd/gen-ntp_keyword.bat39
-rw-r--r--ports/winnt/vs2008/ntpd/ntpd.vcproj1126
-rw-r--r--ports/winnt/vs2008/ntpdate/ntpdate.vcproj362
-rw-r--r--ports/winnt/vs2008/ntpdc/ntpdc.vcproj367
-rw-r--r--ports/winnt/vs2008/ntpq/ntpq.vcproj357
-rw-r--r--ports/winnt/vs2013/instsrv/instsrv.vcproj258
-rw-r--r--ports/winnt/vs2013/instsrv/instsrv.vcxproj680
-rw-r--r--ports/winnt/vs2013/instsrv/instsrv.vcxproj.filters22
-rw-r--r--ports/winnt/vs2013/libntp/libntp.vcproj936
-rw-r--r--ports/winnt/vs2013/libntp/libntp.vcxproj741
-rw-r--r--ports/winnt/vs2013/libntp/libntp.vcxproj.filters568
-rw-r--r--ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcproj256
-rw-r--r--ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj583
-rw-r--r--ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj.filters36
-rw-r--r--ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcproj335
-rw-r--r--ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj752
-rw-r--r--ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj.filters36
-rw-r--r--ports/winnt/vs2013/ntp.sln166
-rw-r--r--ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcproj273
-rw-r--r--ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj531
-rw-r--r--ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters69
-rw-r--r--ports/winnt/vs2013/ntpd/gen-ntp_keyword.bat39
-rw-r--r--ports/winnt/vs2013/ntpd/ntpd.vcproj1126
-rw-r--r--ports/winnt/vs2013/ntpd/ntpd.vcxproj1036
-rw-r--r--ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters559
-rw-r--r--ports/winnt/vs2013/ntpdate/ntpdate.vcproj362
-rw-r--r--ports/winnt/vs2013/ntpdate/ntpdate.vcxproj750
-rw-r--r--ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters72
-rw-r--r--ports/winnt/vs2013/ntpdc/ntpdc.vcproj367
-rw-r--r--ports/winnt/vs2013/ntpdc/ntpdc.vcxproj768
-rw-r--r--ports/winnt/vs2013/ntpdc/ntpdc.vcxproj.filters45
-rw-r--r--ports/winnt/vs2013/ntpq/ntpq.vcproj357
-rw-r--r--ports/winnt/vs2013/ntpq/ntpq.vcxproj740
-rw-r--r--ports/winnt/vs2013/ntpq/ntpq.vcxproj.filters42
-rw-r--r--scripts/Makefile.in3
-rw-r--r--scripts/build/Makefile.in3
-rwxr-xr-xscripts/build/UpdatePoint18
-rwxr-xr-xscripts/build/VersionName15
-rw-r--r--scripts/calc_tickadj/Makefile.in3
-rw-r--r--scripts/calc_tickadj/calc_tickadj.1calc_tickadjman6
-rw-r--r--scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc4
-rw-r--r--scripts/calc_tickadj/calc_tickadj.html2
-rw-r--r--scripts/calc_tickadj/calc_tickadj.man.in6
-rw-r--r--scripts/calc_tickadj/calc_tickadj.mdoc.in4
-rw-r--r--scripts/calc_tickadj/invoke-calc_tickadj.texi2
-rw-r--r--scripts/invoke-plot_summary.texi4
-rw-r--r--scripts/invoke-summary.texi4
-rw-r--r--scripts/lib/Makefile.in3
-rw-r--r--scripts/ntp-wait/Makefile.in3
-rw-r--r--scripts/ntp-wait/invoke-ntp-wait.texi4
-rw-r--r--scripts/ntp-wait/ntp-wait-opts4
-rw-r--r--scripts/ntp-wait/ntp-wait.1ntp-waitman6
-rw-r--r--scripts/ntp-wait/ntp-wait.1ntp-waitmdoc4
-rw-r--r--scripts/ntp-wait/ntp-wait.html4
-rw-r--r--scripts/ntp-wait/ntp-wait.man.in6
-rw-r--r--scripts/ntp-wait/ntp-wait.mdoc.in4
-rw-r--r--scripts/ntpsweep/Makefile.in3
-rw-r--r--scripts/ntpsweep/invoke-ntpsweep.texi4
-rw-r--r--scripts/ntpsweep/ntpsweep-opts4
-rw-r--r--scripts/ntpsweep/ntpsweep.1ntpsweepman6
-rw-r--r--scripts/ntpsweep/ntpsweep.1ntpsweepmdoc4
-rw-r--r--scripts/ntpsweep/ntpsweep.html4
-rw-r--r--scripts/ntpsweep/ntpsweep.man.in6
-rw-r--r--scripts/ntpsweep/ntpsweep.mdoc.in4
-rw-r--r--scripts/ntptrace/Makefile.in3
-rw-r--r--scripts/ntptrace/invoke-ntptrace.texi4
-rw-r--r--scripts/ntptrace/ntptrace-opts4
-rw-r--r--scripts/ntptrace/ntptrace.1ntptraceman6
-rw-r--r--scripts/ntptrace/ntptrace.1ntptracemdoc4
-rw-r--r--scripts/ntptrace/ntptrace.html4
-rw-r--r--scripts/ntptrace/ntptrace.man.in6
-rw-r--r--scripts/ntptrace/ntptrace.mdoc.in4
-rw-r--r--scripts/plot_summary-opts4
-rw-r--r--scripts/plot_summary.1plot_summaryman6
-rw-r--r--scripts/plot_summary.1plot_summarymdoc4
-rw-r--r--scripts/plot_summary.html4
-rw-r--r--scripts/plot_summary.man.in6
-rw-r--r--scripts/plot_summary.mdoc.in4
-rw-r--r--scripts/summary-opts4
-rw-r--r--scripts/summary.1summaryman6
-rw-r--r--scripts/summary.1summarymdoc4
-rw-r--r--scripts/summary.html4
-rw-r--r--scripts/summary.man.in6
-rw-r--r--scripts/summary.mdoc.in4
-rw-r--r--sntp/COPYRIGHT40
-rw-r--r--sntp/Makefile.am13
-rw-r--r--sntp/Makefile.in9
-rw-r--r--sntp/config.h.in3
-rwxr-xr-xsntp/configure370
-rw-r--r--sntp/configure.ac13
-rw-r--r--sntp/crypto.c4
-rw-r--r--sntp/include/Makefile.in1
-rw-r--r--sntp/include/copyright.def4
-rw-r--r--sntp/include/ntp.lic2
-rw-r--r--sntp/include/version.def2
-rw-r--r--sntp/include/version.texi6
-rw-r--r--sntp/invoke-sntp.texi8
-rw-r--r--sntp/libevent/Makefile.in2
-rw-r--r--sntp/libopts/Makefile.in1
-rw-r--r--sntp/libopts/autoopts.h4
-rw-r--r--sntp/libopts/autoopts/options.h10
-rw-r--r--sntp/libopts/configfile.c12
-rw-r--r--sntp/libopts/enum.c8
-rw-r--r--sntp/libopts/file.c4
-rw-r--r--sntp/libopts/find.c4
-rw-r--r--sntp/libopts/init.c13
-rw-r--r--sntp/libopts/load.c2
-rw-r--r--sntp/libopts/makeshell.c16
-rw-r--r--sntp/libopts/nested.c14
-rw-r--r--sntp/libopts/numeric.c2
-rw-r--r--sntp/libopts/parse-duration.c4
-rw-r--r--sntp/libopts/pgusage.c2
-rw-r--r--sntp/libopts/reset.c2
-rw-r--r--sntp/libopts/save.c20
-rw-r--r--sntp/libopts/tokenize.c2
-rw-r--r--sntp/libopts/usage.c4
-rw-r--r--sntp/loc/netbsd2
-rw-r--r--sntp/m4/hms_search_lib.m44
-rw-r--r--sntp/m4/ntp_compiler.m41
-rw-r--r--sntp/m4/ntp_libevent.m425
-rw-r--r--sntp/m4/ntp_libntp.m46
-rw-r--r--sntp/m4/version.m42
-rw-r--r--sntp/main.c13
-rw-r--r--sntp/networking.c23
-rw-r--r--sntp/scripts/Makefile.in1
-rwxr-xr-xsntp/scripts/cvo.sh8
-rw-r--r--sntp/sntp-opts.c344
-rw-r--r--sntp/sntp-opts.def23
-rw-r--r--sntp/sntp-opts.h10
-rw-r--r--sntp/sntp.1sntpman32
-rw-r--r--sntp/sntp.1sntpmdoc29
-rw-r--r--sntp/sntp.html8
-rw-r--r--sntp/sntp.man.in32
-rw-r--r--sntp/sntp.mdoc.in29
-rw-r--r--sntp/tests/Makefile.in1
-rw-r--r--tests/Makefile.in3
-rw-r--r--tests/libntp/Makefile.in3
-rw-r--r--tests/ntpd/Makefile.in3
-rw-r--r--util/Makefile.am1
-rw-r--r--util/Makefile.in9
-rw-r--r--util/invoke-ntp-keygen.texi4
-rw-r--r--util/jitter.h6
-rw-r--r--util/ntp-keygen-opts.c368
-rw-r--r--util/ntp-keygen-opts.h10
-rw-r--r--util/ntp-keygen.1ntp-keygenman10
-rw-r--r--util/ntp-keygen.1ntp-keygenmdoc8
-rw-r--r--util/ntp-keygen.c51
-rw-r--r--util/ntp-keygen.html4
-rw-r--r--util/ntp-keygen.man.in10
-rw-r--r--util/ntp-keygen.mdoc.in8
-rw-r--r--util/ntptime.c9
459 files changed, 43567 insertions, 4532 deletions
diff --git a/COPYRIGHT b/COPYRIGHT
index 1775a64784a5..9c1a0f839358 100644
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -4,16 +4,16 @@ This file is automatically generated from html/copyright.html
jpg "Clone me," says Dolly sheepishly.
- Last update: 9-Aug-2014 07:56 UTC
+ Last update: 17-Jan-2015 00:16 UTC
_________________________________________________________________
The following copyright notice applies to all files collectively
called the Network Time Protocol Version 4 Distribution. Unless
- specifically declared otherwise in an individual file, this notice
- applies as if the text was explicitly included in the file.
+ specifically declared otherwise in an individual file, this entire
+ notice applies as if the text was explicitly included in the file.
***********************************************************************
* *
-* Copyright (c) University of Delaware 1992-2014 *
+* Copyright (c) University of Delaware 1992-2015 *
* *
* Permission to use, copy, modify, and distribute this software and *
* its documentation for any purpose with or without fee is hereby *
@@ -29,6 +29,38 @@ This file is automatically generated from html/copyright.html
* *
***********************************************************************
+ Content starting in 2011 from Harlan Stenn, Danny Mayer, and Martin
+ Burnicki is:
+***********************************************************************
+* *
+* Copyright (c) Network Time Foundation 2011-2015 *
+* *
+* All Rights Reserved *
+* *
+* Redistribution and use in source and binary forms, with or without *
+* modification, are permitted provided that the following conditions *
+* are met: *
+* 1. Redistributions of source code must retain the above copyright *
+* notice, this list of conditions and the following disclaimer. *
+* 2. Redistributions in binary form must reproduce the above *
+* copyright notice, this list of conditions and the following *
+* disclaimer in the documentation and/or other materials provided *
+* with the distribution. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS *
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED *
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE *
+* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE *
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR *
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+* DAMAGE. *
+***********************************************************************
+
The following individuals contributed in part to the Network Time
Protocol Distribution Version 4 and are acknowledged as authors of
this work.
diff --git a/ChangeLog b/ChangeLog
index 4d2ea91b0fac..400cf79340f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,76 @@
---
+(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.
@@ -25,7 +97,7 @@
* [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.
+* [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.
diff --git a/CommitLog b/CommitLog
index fdf3f5e3ac9a..38097ac6ccfe 100644
--- a/CommitLog
+++ b/CommitLog
@@ -1,3 +1,3550 @@
+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
diff --git a/Makefile.am b/Makefile.am
index 2908f96cd037..fc76719f0428 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,10 @@ ACLOCAL_AMFLAGS = -I sntp/m4 -I sntp/libevent/m4 -I sntp/libopts/m4
NULL =
+# moved sntp first to get libtool and libevent built.
+
SUBDIRS = \
+ sntp \
scripts \
include \
libntp \
@@ -17,7 +20,6 @@ SUBDIRS = \
clockstuff \
kernel \
util \
- sntp \
tests \
$(NULL)
@@ -64,7 +66,6 @@ BUILT_SOURCES = \
.gcc-warning \
libtool \
html/.datecheck \
- sntp/built-sources-only \
$(srcdir)/COPYRIGHT \
$(srcdir)/.checkChangeLog \
$(NULL)
diff --git a/Makefile.in b/Makefile.in
index 4746db9c93b3..abd5a09463b8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -171,6 +171,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -205,7 +206,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
@@ -404,7 +407,10 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
ACLOCAL_AMFLAGS = -I sntp/m4 -I sntp/libevent/m4 -I sntp/libopts/m4
NULL =
+
+# moved sntp first to get libtool and libevent built.
SUBDIRS = \
+ sntp \
scripts \
include \
libntp \
@@ -419,7 +425,6 @@ SUBDIRS = \
clockstuff \
kernel \
util \
- sntp \
tests \
$(NULL)
@@ -465,7 +470,6 @@ BUILT_SOURCES = \
.gcc-warning \
libtool \
html/.datecheck \
- sntp/built-sources-only \
$(srcdir)/COPYRIGHT \
$(srcdir)/.checkChangeLog \
$(NULL)
diff --git a/NEWS b/NEWS
index efd488f302b3..d33f059985e4 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,64 @@
---
+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.
@@ -8,6 +68,24 @@ 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
@@ -23,7 +101,9 @@ following high-severity vulnerabilities:
entropy. This was sufficient back in the late 1990s when the
code was written. Not today.
- Mitigation: Upgrade to 4.2.7p11 or later.
+ 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.
@@ -43,7 +123,9 @@ following high-severity vulnerabilities:
cryptographic random number generator, either RAND_bytes from
OpenSSL, or arc4random().
- Mitigation: Upgrade to 4.2.7p230 or later.
+ 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.
@@ -61,10 +143,11 @@ following high-severity vulnerabilities:
buffer and potentially allow malicious code to be executed
with the privilege level of the ntpd process.
- Mitigation: 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.
+ 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.
@@ -80,7 +163,9 @@ following high-severity vulnerabilities:
can overflow a stack buffer and potentially allow malicious
code to be executed with the privilege level of the ntpd process.
- Mitigation: Upgrade to 4.2.8, or later.
+ 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.
@@ -96,7 +181,9 @@ following high-severity vulnerabilities:
can overflow a stack buffer and potentially allow malicious
code to be executed with the privilege level of the ntpd process.
- Mitigation: Upgrade to 4.2.8, or later.
+ 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.
@@ -118,10 +205,10 @@ following high-severity vulnerabilities:
becomes a 5. If system integrity can be partially affected
via all three integrity metrics, the CVSS base score become 7.5.
- Mitigation:
- Upgrade to 4.2.8, or later,
- or Remove or comment out all configuration directives
- beginning with the crypto keyword in your ntp.conf file.
+ 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.
diff --git a/adjtimed/Makefile.in b/adjtimed/Makefile.in
index b1b441721b8c..a6e97da38919 100644
--- a/adjtimed/Makefile.in
+++ b/adjtimed/Makefile.in
@@ -153,6 +153,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -187,7 +188,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/build b/build
index bfe62770803d..15fe39afa047 100755
--- a/build
+++ b/build
@@ -117,7 +117,7 @@ case "$CC" in
;;
esac
- BDIR="$BASEDIR$KEYSUF$CCSUF"
+BDIR="$BASEDIR$KEYSUF$CCSUF"
[ -d "$BDIR" ] || mkdir $BDIR
[ -f "$BDIR/.buildcvo" ] || echo $CVO > $BDIR/.buildcvo
@@ -162,7 +162,11 @@ if [ -z "$TEST" ] ; then
fi
fi
-CONFIGURE="../configure --cache-file=../config.cache-$IAM$KEYSUF$CCSUF $CONFIG_ARGS"
+CONFIGURE="../configure"
+# We need KEYSUF because of RAND_ and others, and -noopenssl"
+#CONFIGURE="$CONFIGURE --cache-file=../config.cache-$IAM$KEYSUF$CCSUF"
+CONFIGURE="$CONFIGURE $CONFIG_ARGS"
+
( # This sequence of commands is logged to make.log.
# If config.status is newer than ../configure, and the same
diff --git a/clockstuff/Makefile.in b/clockstuff/Makefile.in
index 27f3ee748242..f04ff2c4a8c1 100644
--- a/clockstuff/Makefile.in
+++ b/clockstuff/Makefile.in
@@ -149,6 +149,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -183,7 +184,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/config.h.in b/config.h.in
index b5084b6e4c71..76facf9643b4 100644
--- a/config.h.in
+++ b/config.h.in
@@ -327,6 +327,9 @@
*/
#undef HAVE_ALLOCA_H
+/* Define to 1 if you have the `arc4random_buf' function. */
+#undef HAVE_ARC4RANDOM_BUF
+
/* Define to 1 if you have the <arpa/nameser.h> header file. */
#undef HAVE_ARPA_NAMESER_H
@@ -1558,6 +1561,9 @@ typedef unsigned int uintptr_t;
/* Use OpenSSL's crypto random functions */
#undef USE_OPENSSL_CRYPTO_RAND
+/* OK to use snprintb()? */
+#undef USE_SNPRINTB
+
/* Can we use SIGPOLL for tty IO? */
#undef USE_TTY_SIGPOLL
diff --git a/configure b/configure
index c99576e43a8a..28e0c3729cd1 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for ntp4 4.2.8.
+# Generated by GNU Autoconf 2.68 for ntp 4.2.8p1.
#
# Report bugs to <http://bugs.ntp.org./>.
#
@@ -568,10 +568,10 @@ MFLAGS=
MAKEFLAGS=
# Identity of this package.
-PACKAGE_NAME='ntp4'
-PACKAGE_TARNAME='ntp4'
-PACKAGE_VERSION='4.2.8'
-PACKAGE_STRING='ntp4 4.2.8'
+PACKAGE_NAME='ntp'
+PACKAGE_TARNAME='ntp'
+PACKAGE_VERSION='4.2.8p1'
+PACKAGE_STRING='ntp 4.2.8p1'
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
PACKAGE_URL='http://www.ntp.org./'
@@ -649,7 +649,6 @@ DCFD
TESTDCF
MAKE_CHECK_LAYOUT
VER_SUFFIX
-PKG_CONFIG
MAKE_CHECK_Y2K
MAKE_LIBPARSE_KERNEL
MAKE_LIBPARSE
@@ -667,12 +666,18 @@ PTHREADS_TRUE
LIBISC_PTHREADS_NOTHREADS
PTHREAD_LIBS
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
+PKG_CONFIG
LIBOPTS_DIR
LIBOPTS_CFLAGS
LIBOPTS_LDADD
@@ -1568,7 +1573,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ntp4 4.2.8 to adapt to many kinds of systems.
+\`configure' configures ntp 4.2.8p1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1616,7 +1621,7 @@ Fine tuning of the installation directories:
--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/ntp4]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/ntp]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
@@ -1638,7 +1643,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ntp4 4.2.8:";;
+ short | recursive ) echo "Configuration of ntp 4.2.8p1:";;
esac
cat <<\_ACEOF
@@ -1804,7 +1809,7 @@ 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 <http://bugs.ntp.org./>.
-ntp4 home page: <http://www.ntp.org./>.
+ntp home page: <http://www.ntp.org./>.
_ACEOF
ac_status=$?
fi
@@ -1867,7 +1872,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ntp4 configure 4.2.8
+ntp configure 4.2.8p1
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2692,7 +2697,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ntp4 $as_me 4.2.8, which was
+It was created by ntp $as_me 4.2.8p1, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -3638,8 +3643,8 @@ fi
# Define the identity of the package.
- PACKAGE='ntp4'
- VERSION='4.2.8'
+ PACKAGE='ntp'
+ VERSION='4.2.8p1'
cat >>confdefs.h <<_ACEOF
@@ -5429,6 +5434,183 @@ if test "x$ac_cv_prog_cc_c89" != xno; then :
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __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
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ 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 void
+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;
+ float fnumber;
+
+ 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);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ 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[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+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
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then :
+
+fi
+
+
@@ -6162,6 +6344,7 @@ fi
+
CFLAGS_NTP=
CPPFLAGS_NTP=
LDADD_NTP=
@@ -19237,6 +19420,126 @@ fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$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
+ /*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if pkg-config is at least version $ntp_pkgconfig_min_version" >&5
+$as_echo_n "checking if pkg-config is at least version $ntp_pkgconfig_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $ntp_pkgconfig_min_version; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ PKG_CONFIG=""
+ fi
+ ;;
+esac
+
+
+
+
# Check whether --enable-local-libevent was given.
if test "${enable_local_libevent+set}" = set; then :
enableval=$enable_local_libevent; ntp_use_local_libevent=$enableval
@@ -19249,6 +19552,91 @@ 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
+ /*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libevent $ntp_libevent_min_version or later is installed" >&5
+$as_echo_n "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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Using the installed libevent" >&5
+$as_echo "$as_me: Using the installed libevent" >&6;}
+ 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`
+ do
+ case "$i" in
+ -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"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ ntp_use_local_libevent=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ ntp_use_local_libevent=yes
+ ;;
+ esac
+ ;;
+esac
+
+case "$ntp_use_local_libevent" in
+ yes)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Using libevent tearoff" >&5
+$as_echo "$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
@@ -21078,6 +21466,73 @@ fi
done
+# Bug 2713
+LDADD_LIBUTIL=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing snprintb" >&5
+$as_echo_n "checking for library containing snprintb... " >&6; }
+if ${ac_cv_search_snprintb+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char snprintb ();
+int
+main ()
+{
+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$ac_exeext
+ if ${ac_cv_search_snprintb+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_snprintb+:} false; then :
+
+else
+ ac_cv_search_snprintb=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_snprintb" >&5
+$as_echo "$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
+
+$as_echo "#define USE_SNPRINTB 1" >>confdefs.h
+
+fi
+
+
#
for ac_header in errno.h sys/socket.h sys/types.h time.h
do :
@@ -29952,6 +30407,20 @@ esac
####
+for ac_func in arc4random_buf
+do :
+ ac_fn_c_check_func "$LINENO" "arc4random_buf" "ac_cv_func_arc4random_buf"
+if test "x$ac_cv_func_arc4random_buf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ARC4RANDOM_BUF 1
+_ACEOF
+
+fi
+done
+
+
+####
+
saved_LIBS="$LIBS"
LIBS="$LIBS $LDADD_LIBNTP"
for ac_func in daemon
@@ -33046,126 +33515,6 @@ $as_echo "$ans" >&6; }
-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
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- 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
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$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
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "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
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- 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
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$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
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
- if test "x$ac_pt_PKG_CONFIG" = x; then
- PKG_CONFIG=""
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$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
- /*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if pkg-config is at least version $ntp_pkgconfig_min_version" >&5
-$as_echo_n "checking if pkg-config is at least version $ntp_pkgconfig_min_version... " >&6; }
- if $PKG_CONFIG --atleast-pkgconfig-version $ntp_pkgconfig_min_version; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- PKG_CONFIG=""
- fi
- ;;
-esac
-
-
-
-
VER_SUFFIX=
@@ -36327,6 +36676,10 @@ 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
@@ -36756,7 +37109,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ntp4 $as_me 4.2.8, which was
+This file was extended by ntp $as_me 4.2.8p1, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -36817,13 +37170,13 @@ Configuration commands:
$config_commands
Report bugs to <http://bugs.ntp.org./>.
-ntp4 home page: <http://www.ntp.org./>."
+ntp home page: <http://www.ntp.org./>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-ntp4 config.status 4.2.8
+ntp config.status 4.2.8p1
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
index a7d344a21568..6942ceb5333f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@ dnl
m4_include([sntp/m4/version.m4])
AC_PREREQ([2.61])
AC_INIT(
- [ntp4],
+ [ntp],
[VERSION_NUMBER],
[http://bugs.ntp.org./],
[],
@@ -102,7 +102,7 @@ esac
enable_nls=no
LIBOPTS_CHECK_NOBUILD([sntp/libopts])
-NTP_ENABLE_LOCAL_LIBEVENT
+NTP_LIBEVENT_CHECK_NOBUILD([2], [sntp/libevent])
NTP_LIBNTP
@@ -771,6 +771,10 @@ esac
####
+AC_CHECK_FUNCS([arc4random_buf])
+
+####
+
saved_LIBS="$LIBS"
LIBS="$LIBS $LDADD_LIBNTP"
AC_CHECK_FUNCS([daemon])
diff --git a/html/confopt.html b/html/confopt.html
index 8c8ae372c7ed..b964d245b3d8 100644
--- a/html/confopt.html
+++ b/html/confopt.html
@@ -91,11 +91,13 @@ outgoing NTP packets. Versions 1-4 are the choices, with version 4 the default.<
<h4 id="aux">Auxiliary Commands</h4>
<dl>
<dt id="broadcastclient"><tt>broadcastclient</tt></dt>
- <dd>Enable reception of broadcast server messages to any local interface (type b address). Ordinarily, upon receiving a broadcast message for the first time, the broadcast client measures the nominal server propagation delay using a brief client/server exchange, after which it continues in listen-only mode. If a nonzero value is specified in the <tt>broadcastdelay</tt> command, the value becomes the delay and the volley is not executed. Note: the <tt>novolley</tt> option has been deprecated for future enhancements. 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 the <a href="authopt.html">Authentication Options</a> page. Note that the volley is required with public key authentication in order to run the Autokey protocol..</dd>
+ <dd>Enable reception of broadcast server messages to any local interface (type b address). Ordinarily, upon receiving a broadcast message for the first time, the broadcast client measures the nominal server propagation delay using a brief client/server exchange, after which it continues in listen-only mode. If a nonzero value is specified in the <tt>broadcastdelay</tt> command, the value becomes the delay and the volley is not executed. Note: the <tt>novolley</tt> option has been deprecated for future enhancements. 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 the <a href="authopt.html">Authentication Options</a> page. Note that the volley is required with public key authentication in order to run the Autokey protocol.</dd>
<dt id="manycastserver"><tt>manycastserver <i>address</i> [...]</tt></dt>
<dd>Enable reception of manycast client messages (type m) to the multicasts group address(es) (type m) specified. At least one address is required. Note that, in order to avoid accidental or malicious disruption, both the server and client should operate using symmetric key or public key authentication as described in the <a href="authopt.html">Authentication Options</a> page.</dd>
<dt id="multicastclient"><tt>multicastclient <i>address</i> [...]</tt></dt>
<dd>Enable 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 the <a href="authopt.html">Authentication Options</a> page.</dd>
+ <dt id="mdnstries"><tt>mdnstries</tt> <i>number</i></dt>
+ <dd>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 <tt>mdnstries</tt> times. After all, <tt>ntpd</tt> may be starting before mDNS. The default value for <tt>mdnstries</tt> is 5.</dd>
</dl>
<hr>
<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
diff --git a/html/copyright.html b/html/copyright.html
index 08272d4e6715..94fffc4d380e 100644
--- a/html/copyright.html
+++ b/html/copyright.html
@@ -10,16 +10,16 @@
<h3>Copyright Notice</h3>
<img src="pic/sheepb.jpg" alt="jpg" align="left"> "Clone me," says Dolly sheepishly.
<p>Last update:
- <!-- #BeginDate format:En2m -->9-Aug-2014 07:56<!-- #EndDate -->
+ <!-- #BeginDate format:En2m -->17-Jan-2015 00:16<!-- #EndDate -->
UTC</p>
<br clear="left">
</p>
<hr>
-<p>The following copyright notice applies to all files collectively called the Network Time Protocol Version 4 Distribution. Unless specifically declared otherwise in an individual file, this notice applies as if the text was explicitly included in the file.</p>
+<p>The following copyright notice applies to all files collectively called the Network Time Protocol Version 4 Distribution. Unless specifically declared otherwise in an individual file, this entire notice applies as if the text was explicitly included in the file.</p>
<pre>
***********************************************************************
* *
-* Copyright (c) University of Delaware 1992-2014 *
+* Copyright (c) University of Delaware 1992-2015 *
* *
* Permission to use, copy, modify, and distribute this software and *
* its documentation for any purpose with or without fee is hereby *
@@ -35,6 +35,38 @@
* *
***********************************************************************
</pre>
+<p>Content starting in 2011 from Harlan Stenn, Danny Mayer, and Martin Burnicki is:</p>
+<pre>
+***********************************************************************
+* *
+* Copyright (c) Network Time Foundation 2011-2015 *
+* *
+* All Rights Reserved *
+* *
+* Redistribution and use in source and binary forms, with or without *
+* modification, are permitted provided that the following conditions *
+* are met: *
+* 1. Redistributions of source code must retain the above copyright *
+* notice, this list of conditions and the following disclaimer. *
+* 2. Redistributions in binary form must reproduce the above *
+* copyright notice, this list of conditions and the following *
+* disclaimer in the documentation and/or other materials provided *
+* with the distribution. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS *
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED *
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE *
+* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE *
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR *
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+* DAMAGE. *
+***********************************************************************
+</pre>
<p>The following individuals contributed in part to the Network Time Protocol Distribution Version 4 and are acknowledged as authors of this work.</p>
<ol>
<li><a href="mailto:%20takao_abe@xurb.jp">Takao Abe &lt;takao_abe@xurb.jp&gt;</a> Clock driver for JJY receivers</li>
diff --git a/html/drivers/driver28.html b/html/drivers/driver28.html
index 8c7fd802e623..efa862f5f1fc 100644
--- a/html/drivers/driver28.html
+++ b/html/drivers/driver28.html
@@ -7,6 +7,10 @@
<meta name="GENERATOR" content="Mozilla/4.01 [en] (Win95; I) [Netscape]">
<title>Shared Memory Driver</title>
<link href="scripts/style.css" type="text/css" rel="stylesheet">
+ <style type="text/css">
+ table.dlstable { font-size:85%; }
+ td.ttf{ font-family:Courier; font-weight:bold; }
+ </style>
</head>
<body>
@@ -21,7 +25,13 @@
Driver ID: <tt>SHM</tt></p>
<h4>Description</h4>
- <p>This driver receives its reference clock info from a shared memory-segment. The shared memory-segment is created with owner-only access for unit 0 and 1, and world access for unit 2 and 3</p>
+ <p>This driver receives its reference clock info from a shared
+ memory-segment. The shared memory-segment is created with owner-only
+ access by default, unless otherwise requested by the mode word for units
+ &ge;2. Units 0 and 1 are always created with owner-only access for
+ backward compatibility.
+ </p>
+
<h4>Structure of shared memory-segment</h4>
<pre>struct shmTime {
@@ -49,14 +59,14 @@
<h4>Operation mode=0</h4>
<p>Each second, the value of <code>valid</code> of the shared memory-segment is checked:</p>
- <p>If set, the values in the record (clockTimeStampSec, clockTimeStampUSec, receiveTimeStampSec, receiveTimeStampUSec, leap, precision) are passed to ntp, and <code>valid</code> is cleared and <code>count</code> is bumped.</p>
+ <p>If set, the values in the record (clockTimeStampSec, clockTimeStampUSec, receiveTimeStampSec, receiveTimeStampUSec, leap, precision) are passed to <i>NTPD</i>, and <code>valid</code> is cleared and <code>count</code> is bumped.</p>
<p>If not set, <code>count</code> is bumped.</p>
<h4>Operation mode=1</h4>
<p>Each second, <code>valid</code> in the shared memory-segment is checked:</p>
- <p>If set, the <code>count</code> field of the record is remembered, and the values in the record (clockTimeStampSec, clockTimeStampUSec, receiveTimeStampSec, receiveTimeStampUSec, leap, precision) are read. Then, the remembered <code>count</code> is compared to current value of <code>count</code> now in the record. If both are equal, the values read from the record are passed to ntp. If they differ, another process has modified the record while it was read out (was not able to produce this case), and failure is reported to ntp. The <code>valid</code> flag is cleared and <code>count</code> is bumped.</p>
+ <p>If set, the <code>count</code> field of the record is remembered, and the values in the record (clockTimeStampSec, clockTimeStampUSec, receiveTimeStampSec, receiveTimeStampUSec, leap, precision) are read. Then, the remembered <code>count</code> is compared to current value of <code>count</code> now in the record. If both are equal, the values read from the record are passed to <i>NTPD</i>. If they differ, another process has modified the record while it was read out (was not able to produce this case), and failure is reported to <i>NTPD</i>. The <code>valid</code> flag is cleared and <code>count</code> is bumped.</p>
<p>If not set, <code>count</code> is bumped</p>
-<h4>Mode-independent postprocessing</h4>
+<h4>Mode-independent post-processing</h4>
After the time stamps have been successfully plucked from the SHM
segment, some sanity checks take place:
<ul>
@@ -69,30 +79,38 @@ segment, some sanity checks take place:
set to 1.
</ul>
-<h4>gpsd</h4>
+<h4>GPSD</h4>
-<a href="http://gpsd.berlios.de/"><i>gpsd</i></a>
+<a href="http://gpsd.berlios.de/"><i>GPSD</i></a>
knows how to talk to many GPS devices.
-It can work with <i>ntpd</i> through the SHM driver.
+It can work with <i>NTPD</i> through the SHM driver.
<P>
-The <i>gpsd</i> man page suggests setting minpoll and maxpoll to 4.
+The <i>GPSD</i> man page suggests setting minpoll and maxpoll to 4.
That was an attempt to reduce jitter.
The SHM driver was fixed (ntp-4.2.5p138) to collect data each second rather than
once per polling interval so that suggestion is no longer reasonable.
<P>
- <b>Note:</b> The GPSD client driver (type 46) uses the <i>gpsd</i>
- client protocol to connect and talk to <i>gpsd</i>, but using the
- SHM driver is the ancient way to have <i>gpsd</i> talk to <i>ntpd</i>.
+ <b>Note:</b> The <i>GPSD</i> client driver (type 46) uses the <i>GPSD</i>
+ client protocol to connect and talk to <i>GPSD</i>, but using the
+ SHM driver is the ancient way to have <i>GPSD</i> talk to <i>NTPD</i>. There
+ are some tricky points when using the SHM interface to interface
+ with <i>GPSD</i>, because <i>GPSD</i> will use two SHM clocks, one for the
+ serial data stream and one for the PPS information when
+ available. Receivers with a loose/sloppy timing between PPS and serial data
+ can easily cause trouble here because <i>NTPD</i> has no way to join the two
+ data streams and correlate the serial data with the PPS events.
+</p>
+<p>
<h4>Clockstats</h4>
If flag4 is set when the driver is polled, a clockstats record is written.
The first 3 fields are the normal date, time, and IP address common to all clockstats records.
<P>
The 4th field is the number of second ticks since the last poll.
-The 5th field is the number of good data samples found. The last 64 will be used by ntpd.
+The 5th field is the number of good data samples found. The last 64 will be used by <i>NTPD</i>.
The 6th field is the number of sample that didn't have valid data ready.
The 7th field is the number of bad samples.
-The 8th field is the number of times the the mode 1 info was update while nptd was trying to grab a sample.
+The 8th field is the number of times the the mode 1 info was update while <i>NTPD</i> was trying to grab a sample.
<P>
Here is a sample showing the GPS reception fading out:
@@ -112,6 +130,39 @@ Here is a sample showing the GPS reception fading out:
54364 85700.160 127.127.28.0 65 0 65 0 0
</pre>
+ <h4>The 'mode' word</h4>
+
+ <p>
+ Some aspects of the driver behavior can be adjusted by setting bits of
+ the 'mode' word in the server configuration line:<br>
+ &nbsp;&nbsp;<tt>server 127.127.28.</tt><i>x</i><tt> mode </tt><i>Y</i>
+ </p>
+
+ <table border="1" width="100%">
+ <caption>mode word bits and bit groups</caption>
+ <tbody><tr>
+ <th align="center">Bit</th>
+ <th align="center">Dec</th>
+ <th align="center">Hex</th>
+ <th align="left">Meaning</th>
+ </tr>
+
+ <tr>
+ <td align="center">0</td>
+ <td align="center">1</td>
+ <td align="center">1</td>
+ <td>The SHM segment is private (mode 0600). This is the fixed
+ default for clock units 0 and 1; clock units &gt;1 are mode
+ 0666 unless this bit is set for the specific unit.</td>
+ </tr><tr>
+ <td align="center">1-31</td>
+ <td align="center">-</td>
+ <td align="center">-</td>
+ <td><i>reserved -- do not use</i></td>
+ </tr>
+ </tbody>
+ </table>
+
<h4>Fudge Factors</h4>
<dl>
<dt><tt>time1 <i>time</i></tt>
@@ -136,9 +187,64 @@ Here is a sample showing the GPS reception fading out:
<dd>Not used by this driver.
<dt><tt>flag4 0 | 1</tt>
<dd>If flag4 is set, clockstats records will be written when the driver is polled.
- <h4>Additional Information</h4>
- <p><a href="../refclock.html">Reference Clock Drivers</a></p>
</dl>
+
+ <h4>Public vs. Private SHM segments</h4>
+
+ <p>The driver attempts to create a shared memory segment with an
+ identifier depending on the unit number. This identifier (which can be
+ a numeric value or a string) clearly depends on the method used, which
+ in turn depends on the host operating system:</p>
+
+ <ul>
+ <li><p>
+ <tt>Windows</tt> uses a file mapping to the page file with the
+ name '<tt>Global\NTP</tt><i>u</i>' for public accessible
+ mappings, where <i>u</i> is the clock unit. Private /
+ non-public mappings are created as
+ '<tt>Local\NTP</tt><i>u</i>'.
+ </p><p>
+ Public access assigns a NULL DACL to the memory mapping, while
+ private access just uses the default DACL of the process creating
+ the mapping.
+ </p>
+ </li>
+ <li><p>
+ <tt>SYSV IPC</tt> creates a shared memory segment with a key value
+ of <tt>0x4E545030</tt> + <i>u</i>, where <i>u</i> is again
+ the clock unit. (This value could be hex-decoded as 'NTP0',
+ 'NTP1',..., with funny characters for units &gt; 9.)
+ </p><p>
+ Public access means a permission set of 0666, while private access
+ creates the mapping with a permission set of 0600.
+ </p>
+ </li>
+ </ul>
+
+ <p>There's no support for POSIX shared memory yet.</p>
+
+ <p><i>NTPD</i> is started as root on most POSIX-like operating systems
+ and uses the setuid/setgid system API to run under reduced rights once
+ the initial setup of the process is done. One consequence out of this
+ is that the allocation of SHM segments must be done early during the
+ clock setup. The actual polling of the clock is done as the run-time
+ user; deferring the creation of the SHM segment to this point will
+ create a SHM segment owned by the runtime-user account. The internal
+ structure of <i>NTPD</i> does not permit the use of a fudge flag if
+ this is to be avoided; this is the reason why a mode bit is used for
+ the configuration of a public segment.
+ </p>
+
+ <p>When running under Windows, the chosen user account must be able to
+ create a SHM segment in the global object name space for SHM clocks with
+ public access. Otherwise the session isolation used by Windows kernels
+ after WinXP will get into the way if the client program does not run in
+ the same session.
+ </p>
+
+ <h4>Additional Information</h4>
+ <p><a href="../refclock.html">Reference Clock Drivers</a></p>
+
<hr>
<script type="text/javascript" language="javascript" src="scripts/footer.txt"></script>
</body>
diff --git a/html/pic/9400n.jpg b/html/pic/9400n.jpg
new file mode 100644
index 000000000000..9209b90f3d0d
--- /dev/null
+++ b/html/pic/9400n.jpg
Binary files differ
diff --git a/html/pic/alice11.gif b/html/pic/alice11.gif
new file mode 100644
index 000000000000..62d0c9ba0094
--- /dev/null
+++ b/html/pic/alice11.gif
Binary files differ
diff --git a/html/pic/alice13.gif b/html/pic/alice13.gif
new file mode 100644
index 000000000000..c928ff75bb42
--- /dev/null
+++ b/html/pic/alice13.gif
Binary files differ
diff --git a/html/pic/alice15.gif b/html/pic/alice15.gif
new file mode 100644
index 000000000000..e17b5fdf11e1
--- /dev/null
+++ b/html/pic/alice15.gif
Binary files differ
diff --git a/html/pic/alice23.gif b/html/pic/alice23.gif
new file mode 100644
index 000000000000..bc258a0f7916
--- /dev/null
+++ b/html/pic/alice23.gif
Binary files differ
diff --git a/html/pic/alice31.gif b/html/pic/alice31.gif
new file mode 100644
index 000000000000..ea3d20cd9c83
--- /dev/null
+++ b/html/pic/alice31.gif
Binary files differ
diff --git a/html/pic/alice32.gif b/html/pic/alice32.gif
new file mode 100644
index 000000000000..db7cc40c655f
--- /dev/null
+++ b/html/pic/alice32.gif
Binary files differ
diff --git a/html/pic/alice35.gif b/html/pic/alice35.gif
new file mode 100644
index 000000000000..aa0ca4335db9
--- /dev/null
+++ b/html/pic/alice35.gif
Binary files differ
diff --git a/html/pic/alice38.gif b/html/pic/alice38.gif
new file mode 100644
index 000000000000..e40adba1b70c
--- /dev/null
+++ b/html/pic/alice38.gif
Binary files differ
diff --git a/html/pic/alice44.gif b/html/pic/alice44.gif
new file mode 100644
index 000000000000..953387edc444
--- /dev/null
+++ b/html/pic/alice44.gif
Binary files differ
diff --git a/html/pic/alice47.gif b/html/pic/alice47.gif
new file mode 100644
index 000000000000..6b27160454d0
--- /dev/null
+++ b/html/pic/alice47.gif
Binary files differ
diff --git a/html/pic/alice51.gif b/html/pic/alice51.gif
new file mode 100644
index 000000000000..1e9082a554b6
--- /dev/null
+++ b/html/pic/alice51.gif
Binary files differ
diff --git a/html/pic/alice61.gif b/html/pic/alice61.gif
new file mode 100644
index 000000000000..5687c38e8731
--- /dev/null
+++ b/html/pic/alice61.gif
Binary files differ
diff --git a/html/pic/barnstable.gif b/html/pic/barnstable.gif
new file mode 100644
index 000000000000..17d9cdd5de92
--- /dev/null
+++ b/html/pic/barnstable.gif
Binary files differ
diff --git a/html/pic/beaver.gif b/html/pic/beaver.gif
new file mode 100644
index 000000000000..3d0c8eb9b5c4
--- /dev/null
+++ b/html/pic/beaver.gif
Binary files differ
diff --git a/html/pic/boom3.gif b/html/pic/boom3.gif
new file mode 100644
index 000000000000..1a95d4088121
--- /dev/null
+++ b/html/pic/boom3.gif
Binary files differ
diff --git a/html/pic/boom3a.gif b/html/pic/boom3a.gif
new file mode 100644
index 000000000000..14bfe5bf8890
--- /dev/null
+++ b/html/pic/boom3a.gif
Binary files differ
diff --git a/html/pic/boom4.gif b/html/pic/boom4.gif
new file mode 100644
index 000000000000..0661ac41031f
--- /dev/null
+++ b/html/pic/boom4.gif
Binary files differ
diff --git a/html/pic/broad.gif b/html/pic/broad.gif
new file mode 100644
index 000000000000..b372bb5c14dc
--- /dev/null
+++ b/html/pic/broad.gif
Binary files differ
diff --git a/html/pic/bustardfly.gif b/html/pic/bustardfly.gif
new file mode 100644
index 000000000000..b5c6e91a75ad
--- /dev/null
+++ b/html/pic/bustardfly.gif
Binary files differ
diff --git a/html/pic/c51.jpg b/html/pic/c51.jpg
new file mode 100644
index 000000000000..d90ad551d2c6
--- /dev/null
+++ b/html/pic/c51.jpg
Binary files differ
diff --git a/html/pic/description.jpg b/html/pic/description.jpg
new file mode 100644
index 000000000000..2153180a899c
--- /dev/null
+++ b/html/pic/description.jpg
Binary files differ
diff --git a/html/pic/discipline.gif b/html/pic/discipline.gif
new file mode 100644
index 000000000000..3280d1460e65
--- /dev/null
+++ b/html/pic/discipline.gif
Binary files differ
diff --git a/html/pic/dogsnake.gif b/html/pic/dogsnake.gif
new file mode 100644
index 000000000000..1f9755dcd976
--- /dev/null
+++ b/html/pic/dogsnake.gif
Binary files differ
diff --git a/html/pic/driver29.gif b/html/pic/driver29.gif
new file mode 100644
index 000000000000..b0415ae41ed9
--- /dev/null
+++ b/html/pic/driver29.gif
Binary files differ
diff --git a/html/pic/driver43_1.gif b/html/pic/driver43_1.gif
new file mode 100644
index 000000000000..f1ff7c79ee63
--- /dev/null
+++ b/html/pic/driver43_1.gif
Binary files differ
diff --git a/html/pic/driver43_2.jpg b/html/pic/driver43_2.jpg
new file mode 100644
index 000000000000..c53639c5daaa
--- /dev/null
+++ b/html/pic/driver43_2.jpg
Binary files differ
diff --git a/html/pic/fg6021.gif b/html/pic/fg6021.gif
new file mode 100644
index 000000000000..e6e3071262da
--- /dev/null
+++ b/html/pic/fg6021.gif
Binary files differ
diff --git a/html/pic/fg6039.jpg b/html/pic/fg6039.jpg
new file mode 100644
index 000000000000..25fc7c421113
--- /dev/null
+++ b/html/pic/fg6039.jpg
Binary files differ
diff --git a/html/pic/fig_3_1.gif b/html/pic/fig_3_1.gif
new file mode 100644
index 000000000000..a280a89032e5
--- /dev/null
+++ b/html/pic/fig_3_1.gif
Binary files differ
diff --git a/html/pic/flatheads.gif b/html/pic/flatheads.gif
new file mode 100644
index 000000000000..707cb8cc3d4b
--- /dev/null
+++ b/html/pic/flatheads.gif
Binary files differ
diff --git a/html/pic/flt1.gif b/html/pic/flt1.gif
new file mode 100644
index 000000000000..d08c5ac74688
--- /dev/null
+++ b/html/pic/flt1.gif
Binary files differ
diff --git a/html/pic/flt2.gif b/html/pic/flt2.gif
new file mode 100644
index 000000000000..d4909cb54cef
--- /dev/null
+++ b/html/pic/flt2.gif
Binary files differ
diff --git a/html/pic/flt3.gif b/html/pic/flt3.gif
new file mode 100644
index 000000000000..1eefbe13946a
--- /dev/null
+++ b/html/pic/flt3.gif
Binary files differ
diff --git a/html/pic/flt4.gif b/html/pic/flt4.gif
new file mode 100644
index 000000000000..3f8b67134748
--- /dev/null
+++ b/html/pic/flt4.gif
Binary files differ
diff --git a/html/pic/flt5.gif b/html/pic/flt5.gif
new file mode 100644
index 000000000000..52714ac0826e
--- /dev/null
+++ b/html/pic/flt5.gif
Binary files differ
diff --git a/html/pic/flt6.gif b/html/pic/flt6.gif
new file mode 100644
index 000000000000..0451e86f6641
--- /dev/null
+++ b/html/pic/flt6.gif
Binary files differ
diff --git a/html/pic/flt7.gif b/html/pic/flt7.gif
new file mode 100644
index 000000000000..55f07d83bb9f
--- /dev/null
+++ b/html/pic/flt7.gif
Binary files differ
diff --git a/html/pic/flt8.gif b/html/pic/flt8.gif
new file mode 100644
index 000000000000..04bd32b78c41
--- /dev/null
+++ b/html/pic/flt8.gif
Binary files differ
diff --git a/html/pic/flt9.gif b/html/pic/flt9.gif
new file mode 100644
index 000000000000..e107c482a494
--- /dev/null
+++ b/html/pic/flt9.gif
Binary files differ
diff --git a/html/pic/freq1211.gif b/html/pic/freq1211.gif
new file mode 100644
index 000000000000..2a564168376d
--- /dev/null
+++ b/html/pic/freq1211.gif
Binary files differ
diff --git a/html/pic/gadget.jpg b/html/pic/gadget.jpg
new file mode 100644
index 000000000000..6289911e226f
--- /dev/null
+++ b/html/pic/gadget.jpg
Binary files differ
diff --git a/html/pic/gps167.jpg b/html/pic/gps167.jpg
new file mode 100644
index 000000000000..8a87a75f996c
--- /dev/null
+++ b/html/pic/gps167.jpg
Binary files differ
diff --git a/html/pic/group.gif b/html/pic/group.gif
new file mode 100644
index 000000000000..26aff0674136
--- /dev/null
+++ b/html/pic/group.gif
Binary files differ
diff --git a/html/pic/hornraba.gif b/html/pic/hornraba.gif
new file mode 100644
index 000000000000..3077d75ecc93
--- /dev/null
+++ b/html/pic/hornraba.gif
Binary files differ
diff --git a/html/pic/igclock.gif b/html/pic/igclock.gif
new file mode 100644
index 000000000000..940f330c7ebb
--- /dev/null
+++ b/html/pic/igclock.gif
Binary files differ
diff --git a/html/pic/neoclock4x.gif b/html/pic/neoclock4x.gif
new file mode 100755
index 000000000000..4df95af54ffe
--- /dev/null
+++ b/html/pic/neoclock4x.gif
Binary files differ
diff --git a/html/pic/offset1211.gif b/html/pic/offset1211.gif
new file mode 100644
index 000000000000..8a73287a9cb3
--- /dev/null
+++ b/html/pic/offset1211.gif
Binary files differ
diff --git a/html/pic/oncore_evalbig.gif b/html/pic/oncore_evalbig.gif
new file mode 100644
index 000000000000..931a7f14d52c
--- /dev/null
+++ b/html/pic/oncore_evalbig.gif
Binary files differ
diff --git a/html/pic/oncore_remoteant.jpg b/html/pic/oncore_remoteant.jpg
new file mode 100644
index 000000000000..0f1d04891c6f
--- /dev/null
+++ b/html/pic/oncore_remoteant.jpg
Binary files differ
diff --git a/html/pic/oncore_utplusbig.gif b/html/pic/oncore_utplusbig.gif
new file mode 100644
index 000000000000..dec7e71fd7be
--- /dev/null
+++ b/html/pic/oncore_utplusbig.gif
Binary files differ
diff --git a/html/pic/oz2.gif b/html/pic/oz2.gif
new file mode 100644
index 000000000000..d4982f02b2a8
--- /dev/null
+++ b/html/pic/oz2.gif
Binary files differ
diff --git a/html/pic/panda.gif b/html/pic/panda.gif
new file mode 100644
index 000000000000..6feb74365ee4
--- /dev/null
+++ b/html/pic/panda.gif
Binary files differ
diff --git a/html/pic/pd_om006.gif b/html/pic/pd_om006.gif
new file mode 100644
index 000000000000..3266285eac56
--- /dev/null
+++ b/html/pic/pd_om006.gif
Binary files differ
diff --git a/html/pic/pd_om011.gif b/html/pic/pd_om011.gif
new file mode 100644
index 000000000000..06566b9525d2
--- /dev/null
+++ b/html/pic/pd_om011.gif
Binary files differ
diff --git a/html/pic/peer.gif b/html/pic/peer.gif
new file mode 100644
index 000000000000..35bd36f7fb98
--- /dev/null
+++ b/html/pic/peer.gif
Binary files differ
diff --git a/html/pic/pogo.gif b/html/pic/pogo.gif
new file mode 100644
index 000000000000..68dacbe856dc
--- /dev/null
+++ b/html/pic/pogo.gif
Binary files differ
diff --git a/html/pic/pogo1a.gif b/html/pic/pogo1a.gif
new file mode 100644
index 000000000000..433e467d9194
--- /dev/null
+++ b/html/pic/pogo1a.gif
Binary files differ
diff --git a/html/pic/pogo3a.gif b/html/pic/pogo3a.gif
new file mode 100644
index 000000000000..49f1359fefaa
--- /dev/null
+++ b/html/pic/pogo3a.gif
Binary files differ
diff --git a/html/pic/pogo4.gif b/html/pic/pogo4.gif
new file mode 100644
index 000000000000..e0a3b178160b
--- /dev/null
+++ b/html/pic/pogo4.gif
Binary files differ
diff --git a/html/pic/pogo5.gif b/html/pic/pogo5.gif
new file mode 100644
index 000000000000..87ad8e490d6b
--- /dev/null
+++ b/html/pic/pogo5.gif
Binary files differ
diff --git a/html/pic/pogo6.gif b/html/pic/pogo6.gif
new file mode 100644
index 000000000000..3f98c52cdf63
--- /dev/null
+++ b/html/pic/pogo6.gif
Binary files differ
diff --git a/html/pic/pogo7.gif b/html/pic/pogo7.gif
new file mode 100644
index 000000000000..36befe7a692c
--- /dev/null
+++ b/html/pic/pogo7.gif
Binary files differ
diff --git a/html/pic/pogo8.gif b/html/pic/pogo8.gif
new file mode 100644
index 000000000000..6860efbba879
--- /dev/null
+++ b/html/pic/pogo8.gif
Binary files differ
diff --git a/html/pic/pzf509.jpg b/html/pic/pzf509.jpg
new file mode 100644
index 000000000000..b51303bfe667
--- /dev/null
+++ b/html/pic/pzf509.jpg
Binary files differ
diff --git a/html/pic/pzf511.jpg b/html/pic/pzf511.jpg
new file mode 100644
index 000000000000..c470af2f6daa
--- /dev/null
+++ b/html/pic/pzf511.jpg
Binary files differ
diff --git a/html/pic/rabbit.gif b/html/pic/rabbit.gif
new file mode 100644
index 000000000000..ab6ec5ff56fa
--- /dev/null
+++ b/html/pic/rabbit.gif
Binary files differ
diff --git a/html/pic/radio2.jpg b/html/pic/radio2.jpg
new file mode 100644
index 000000000000..ceb7c76e36fa
--- /dev/null
+++ b/html/pic/radio2.jpg
Binary files differ
diff --git a/html/pic/sheepb.jpg b/html/pic/sheepb.jpg
new file mode 100644
index 000000000000..1b3323ee4c04
--- /dev/null
+++ b/html/pic/sheepb.jpg
Binary files differ
diff --git a/html/pic/stack1a.jpg b/html/pic/stack1a.jpg
new file mode 100644
index 000000000000..1e023cb4af5c
--- /dev/null
+++ b/html/pic/stack1a.jpg
Binary files differ
diff --git a/html/pic/stats.gif b/html/pic/stats.gif
new file mode 100644
index 000000000000..b0d0aaa31e8d
--- /dev/null
+++ b/html/pic/stats.gif
Binary files differ
diff --git a/html/pic/sx5.gif b/html/pic/sx5.gif
new file mode 100644
index 000000000000..504e38b73287
--- /dev/null
+++ b/html/pic/sx5.gif
Binary files differ
diff --git a/html/pic/thunderbolt.jpg b/html/pic/thunderbolt.jpg
new file mode 100644
index 000000000000..49253ab543e8
--- /dev/null
+++ b/html/pic/thunderbolt.jpg
Binary files differ
diff --git a/html/pic/time1.gif b/html/pic/time1.gif
new file mode 100644
index 000000000000..88e70420f302
--- /dev/null
+++ b/html/pic/time1.gif
Binary files differ
diff --git a/html/pic/tonea.gif b/html/pic/tonea.gif
new file mode 100644
index 000000000000..195a3df6c4da
--- /dev/null
+++ b/html/pic/tonea.gif
Binary files differ
diff --git a/html/pic/tribeb.gif b/html/pic/tribeb.gif
new file mode 100644
index 000000000000..59e8a7c48706
--- /dev/null
+++ b/html/pic/tribeb.gif
Binary files differ
diff --git a/html/pic/wingdorothy.gif b/html/pic/wingdorothy.gif
new file mode 100644
index 000000000000..3f2e0be66330
--- /dev/null
+++ b/html/pic/wingdorothy.gif
Binary files differ
diff --git a/include/Makefile.in b/include/Makefile.in
index 0a6a65d4da3c..36c9b865f481 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -151,6 +151,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -185,7 +186,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/include/audio.h b/include/audio.h
index 1b969bd49ebd..0d7422666685 100644
--- a/include/audio.h
+++ b/include/audio.h
@@ -9,6 +9,6 @@
/*
* Function prototypes
*/
-int audio_init (char *, int, int);
+int audio_init (const char *, int, int);
int audio_gain (int, int, int);
void audio_show (void);
diff --git a/include/icom.h b/include/icom.h
index 66d12e51f1cc..b271afbec54a 100755
--- a/include/icom.h
+++ b/include/icom.h
@@ -83,5 +83,5 @@
/*
* Function prototypes
*/
-int icom_init (char *, int, int);
+int icom_init (const char *, int, int);
int icom_freq (int, int, double);
diff --git a/include/isc/Makefile.in b/include/isc/Makefile.in
index cdb34ec0902b..f29d1454b9a9 100644
--- a/include/isc/Makefile.in
+++ b/include/isc/Makefile.in
@@ -113,6 +113,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -147,7 +148,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/include/ntp_config.h b/include/ntp_config.h
index 900688cef4ee..a74cd552b85d 100644
--- a/include/ntp_config.h
+++ b/include/ntp_config.h
@@ -239,6 +239,7 @@ struct config_tree_tag {
int_fifo * reset_counters;
sim_fifo * sim_details;
+ int mdnstries;
};
@@ -286,7 +287,7 @@ attr_val *create_attr_dval(int attr, double value);
attr_val *create_attr_ival(int attr, int value);
attr_val *create_attr_uval(int attr, u_int value);
attr_val *create_attr_rangeval(int attr, int first, int last);
-attr_val *create_attr_sval(int attr, char *s);
+attr_val *create_attr_sval(int attr, const char *s);
filegen_node *create_filegen_node(int filegen_token,
attr_val_fifo *options);
string_node *create_string_node(char *str);
@@ -316,7 +317,7 @@ int dump_all_config_trees(FILE *df, int comment);
#endif
#if defined(HAVE_SETRLIMIT)
-void ntp_rlimit(int, rlim_t, int, char *);
+void ntp_rlimit(int, rlim_t, int, const char *);
#endif
#endif /* !defined(NTP_CONFIG_H) */
diff --git a/include/ntp_filegen.h b/include/ntp_filegen.h
index f5ba8afe9ed8..549bedbc8522 100644
--- a/include/ntp_filegen.h
+++ b/include/ntp_filegen.h
@@ -52,5 +52,5 @@ extern void filegen_statsdir(void);
extern FILEGEN *filegen_get (const char *);
extern void filegen_register (const char *, const char *, FILEGEN *);
#ifdef DEBUG
-extern void filegen_unregister(char *);
+extern void filegen_unregister(const char *);
#endif
diff --git a/include/ntp_stdlib.h b/include/ntp_stdlib.h
index 7c884fc3274c..38180f0d78f2 100644
--- a/include/ntp_stdlib.h
+++ b/include/ntp_stdlib.h
@@ -96,14 +96,14 @@ extern int ymd2yd (int, int, int);
/* a_md5encrypt.c */
extern int MD5authdecrypt (int, u_char *, u_int32 *, int, int);
extern int MD5authencrypt (int, u_char *, u_int32 *, int);
-extern void MD5auth_setkey (keyid_t, int, const u_char *, int);
+extern void MD5auth_setkey (keyid_t, int, const u_char *, size_t);
extern u_int32 addr2refid (sockaddr_u *);
/* emalloc.c */
#ifndef EREALLOC_CALLSITE /* ntp_malloc.h defines */
extern void * ereallocz (void *, size_t, size_t, int);
#define erealloczsite(p, n, o, z, f, l) ereallocz(p, n, o, (z))
-extern void * emalloc (size_t);
+#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)
@@ -129,11 +129,11 @@ extern char * estrdup_impl (const char *, const char *, int);
extern int atoint (const char *, long *);
extern int atouint (const char *, u_long *);
extern int hextoint (const char *, u_long *);
-extern char * humanlogtime (void);
-extern char * humantime (time_t);
+extern const char * humanlogtime (void);
+extern const char * humantime (time_t);
extern char * mfptoa (u_int32, u_int32, short);
extern char * mfptoms (u_int32, u_int32, short);
-extern const char * modetoa (int);
+extern const char * modetoa (size_t);
extern const char * eventstr (int);
extern const char * ceventstr (int);
extern const char * res_match_flags(u_short);
diff --git a/include/ntpd.h b/include/ntpd.h
index 51d8f2accd3e..77fe4843a654 100644
--- a/include/ntpd.h
+++ b/include/ntpd.h
@@ -78,7 +78,7 @@ extern int mprintf_event (int, struct peer *, const char *, ...)
struct ctl_var {
u_short code;
u_short flags;
- char *text;
+ const char *text;
};
/*
* Flag values
@@ -218,7 +218,7 @@ extern struct value tai_leap;
/* ntp_proto.c */
extern void transmit (struct peer *);
extern void receive (struct recvbuf *);
-extern void peer_clear (struct peer *, char *);
+extern void peer_clear (struct peer *, const char *);
extern void process_packet (struct peer *, struct pkt *, u_int);
extern void clock_select (void);
@@ -285,7 +285,7 @@ extern void record_loop_stats (double, double, double, double, int);
extern void record_clock_stats (sockaddr_u *, const char *);
extern int mprintf_clock_stats(sockaddr_u *, const char *, ...)
NTP_PRINTF(2, 3);
-extern void record_raw_stats (sockaddr_u *srcadr, sockaddr_u *dstadr, l_fp *t1, l_fp *t2, l_fp *t3, l_fp *t4, int leap, int version, int mode, int stratum, int poll, int precision, double root_delay, double root_dispersion, u_int32 refid);
+extern void record_raw_stats (sockaddr_u *srcadr, sockaddr_u *dstadr, l_fp *t1, l_fp *t2, l_fp *t3, l_fp *t4, int leap, int version, int mode, int stratum, int ppoll, int precision, double root_delay, double root_dispersion, u_int32 refid);
extern void check_leap_file (int is_daily_check, u_int32 ntptime, const time_t * systime);
extern void record_crypto_stats (sockaddr_u *, const char *);
#ifdef DEBUG
diff --git a/include/timepps-Solaris.h b/include/timepps-Solaris.h
index a2b1fbe3b677..bcae382fe47f 100644
--- a/include/timepps-Solaris.h
+++ b/include/timepps-Solaris.h
@@ -413,7 +413,7 @@ time_pps_getparams(
}
punit = (pps_unit_t *)handle;
- memcpy(params, &punit->params, sizeof(params));
+ memcpy(params, &punit->params, sizeof(*params));
return (0);
}
diff --git a/kernel/Makefile.in b/kernel/Makefile.in
index 0fce65b1e0b3..5c85def062fd 100644
--- a/kernel/Makefile.in
+++ b/kernel/Makefile.in
@@ -148,6 +148,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -182,7 +183,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/kernel/sys/Makefile.in b/kernel/sys/Makefile.in
index 2260c858fa5a..83334765ee47 100644
--- a/kernel/sys/Makefile.in
+++ b/kernel/sys/Makefile.in
@@ -113,6 +113,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -147,7 +148,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/lib/isc/backtrace.c b/lib/isc/backtrace.c
index d2f044cb8c4c..4274da31b463 100644
--- a/lib/isc/backtrace.c
+++ b/lib/isc/backtrace.c
@@ -211,17 +211,17 @@ isc_backtrace_gettrace(void **addrs, int maxaddrs, int *nframes) {
#endif
isc_result_t
-isc_backtrace_getsymbolfromindex(int index, const void **addrp,
+isc_backtrace_getsymbolfromindex(int idx, const void **addrp,
const char **symbolp)
{
REQUIRE(addrp != NULL && *addrp == NULL);
REQUIRE(symbolp != NULL && *symbolp == NULL);
- if (index < 0 || index >= isc__backtrace_nsymbols)
+ if (idx < 0 || idx >= isc__backtrace_nsymbols)
return (ISC_R_RANGE);
- *addrp = isc__backtrace_symtable[index].addr;
- *symbolp = isc__backtrace_symtable[index].symbol;
+ *addrp = isc__backtrace_symtable[idx].addr;
+ *symbolp = isc__backtrace_symtable[idx].symbol;
return (ISC_R_SUCCESS);
}
diff --git a/lib/isc/event.c b/lib/isc/event.c
index 8ab75240dca9..e97961682656 100644
--- a/lib/isc/event.c
+++ b/lib/isc/event.c
@@ -34,9 +34,7 @@
static void
destroy(isc_event_t *event) {
- isc_mem_t *mctx = event->ev_destroy_arg;
-
- isc_mem_put(mctx, event, event->ev_size);
+ isc_mem_put(event->ev_destroy_arg, event, event->ev_size);
}
isc_event_t *
diff --git a/lib/isc/include/isc/backtrace.h b/lib/isc/include/isc/backtrace.h
index c0e98c0b7530..7d7fc3217212 100644
--- a/lib/isc/include/isc/backtrace.h
+++ b/lib/isc/include/isc/backtrace.h
@@ -85,12 +85,12 @@ isc_backtrace_gettrace(void **addrs, int maxaddrs, int *nframes);
*/
isc_result_t
-isc_backtrace_getsymbolfromindex(int index, const void **addrp,
+isc_backtrace_getsymbolfromindex(int idx, const void **addrp,
const char **symbolp);
/*%<
* Returns the content of the internal symbol table of the given index.
* On success, *addrsp and *symbolp point to the address and the symbol of
- * the 'index'th entry of the table, respectively. If 'index' is not in the
+ * the 'index'th entry of the table, respectively. If 'idx' is not in the
* range of the symbol table, ISC_R_RANGE will be returned.
*
* Requires
diff --git a/lib/isc/include/isc/socket.h b/lib/isc/include/isc/socket.h
index 38f6f78025df..46e05a077492 100644
--- a/lib/isc/include/isc/socket.h
+++ b/lib/isc/include/isc/socket.h
@@ -274,7 +274,7 @@ typedef struct isc_socketmgrmethods {
} isc_socketmgrmethods_t;
typedef struct isc_socketmethods {
- void (*attach)(isc_socket_t *socket,
+ void (*attach)(isc_socket_t *sock,
isc_socket_t **socketp);
void (*detach)(isc_socket_t **socketp);
isc_result_t (*bind)(isc_socket_t *sock, isc_sockaddr_t *sockaddr,
@@ -296,9 +296,9 @@ typedef struct isc_socketmethods {
isc_sockettype_t (*gettype)(isc_socket_t *sock);
void (*ipv6only)(isc_socket_t *sock, isc_boolean_t yes);
isc_result_t (*fdwatchpoke)(isc_socket_t *sock, int flags);
- isc_result_t (*dup)(isc_socket_t *socket,
+ isc_result_t (*dup)(isc_socket_t *sock,
isc_socket_t **socketp);
- int (*getfd)(isc_socket_t *socket);
+ int (*getfd)(isc_socket_t *sock);
} isc_socketmethods_t;
/*%
@@ -1094,24 +1094,24 @@ isc_socket_permunix(isc_sockaddr_t *sockaddr, isc_uint32_t perm,
* \li #ISC_R_FAILURE
*/
-void isc_socket_setname(isc_socket_t *socket, const char *name, void *tag);
+void isc_socket_setname(isc_socket_t *sock, const char *name, void *tag);
/*%<
* Set the name and optional tag for a socket. This allows tracking of the
* owner or purpose for this socket, and is useful for tracing and statistics
* reporting.
*/
-const char *isc_socket_getname(isc_socket_t *socket);
+const char *isc_socket_getname(isc_socket_t *sock);
/*%<
* Get the name associated with a socket, if any.
*/
-void *isc_socket_gettag(isc_socket_t *socket);
+void *isc_socket_gettag(isc_socket_t *sock);
/*%<
* Get the tag associated with a socket, if any.
*/
-int isc_socket_getfd(isc_socket_t *socket);
+int isc_socket_getfd(isc_socket_t *sock);
/*%<
* Get the file descriptor associated with a socket
*/
diff --git a/lib/isc/log.c b/lib/isc/log.c
index 0c142ce7707a..ce98303fecaf 100644
--- a/lib/isc/log.c
+++ b/lib/isc/log.c
@@ -1521,10 +1521,11 @@ isc_log_doit(isc_log_t *lctx, isc_logcategory_t *category,
level_string[0] == '\0') {
if (level < ISC_LOG_CRITICAL)
snprintf(level_string, sizeof(level_string),
+ "%s %d: ",
isc_msgcat_get(isc_msgcat,
ISC_MSGSET_LOG,
ISC_MSG_LEVEL,
- "level %d: "),
+ "level"),
level);
else if (level > ISC_LOG_DYNAMIC)
snprintf(level_string, sizeof(level_string),
diff --git a/lib/isc/netaddr.c b/lib/isc/netaddr.c
index d6928c10df8b..457576b77dd8 100644
--- a/lib/isc/netaddr.c
+++ b/lib/isc/netaddr.c
@@ -202,9 +202,10 @@ isc_netaddr_format(const isc_netaddr_t *na, char *array, unsigned int size) {
if (result != ISC_R_SUCCESS) {
snprintf(array, size,
+ "<%s %u>",
isc_msgcat_get(isc_msgcat, ISC_MSGSET_NETADDR,
ISC_MSG_UNKNOWNADDR,
- "<unknown address, family %u>"),
+ "unknown address, family"),
na->family);
array[size - 1] = '\0';
}
diff --git a/lib/isc/sockaddr.c b/lib/isc/sockaddr.c
index 2a7268f96131..1ae5e7c91697 100644
--- a/lib/isc/sockaddr.c
+++ b/lib/isc/sockaddr.c
@@ -192,9 +192,10 @@ isc_sockaddr_format(const isc_sockaddr_t *sa, char *array, unsigned int size) {
* The message is the same as in netaddr.c.
*/
snprintf(array, size,
+ "<%s %u>",
isc_msgcat_get(isc_msgcat, ISC_MSGSET_NETADDR,
ISC_MSG_UNKNOWNADDR,
- "<unknown address, family %u>"),
+ "unknown address, family"),
sa->type.sa.sa_family);
array[size - 1] = '\0';
}
@@ -230,10 +231,11 @@ isc_sockaddr_hash(const isc_sockaddr_t *sockaddr, isc_boolean_t address_only) {
break;
default:
UNEXPECTED_ERROR(__FILE__, __LINE__,
+ "%s: %d",
isc_msgcat_get(isc_msgcat,
ISC_MSGSET_SOCKADDR,
ISC_MSG_UNKNOWNFAMILY,
- "unknown address family: %d"),
+ "unknown address family"),
(int)sockaddr->type.sa.sa_family);
s = (const unsigned char *)&sockaddr->type;
length = sockaddr->length;
@@ -410,9 +412,10 @@ isc_sockaddr_setport(isc_sockaddr_t *sockaddr, in_port_t port) {
break;
default:
FATAL_ERROR(__FILE__, __LINE__,
+ "%s: %d",
isc_msgcat_get(isc_msgcat, ISC_MSGSET_SOCKADDR,
ISC_MSG_UNKNOWNFAMILY,
- "unknown address family: %d"),
+ "unknown address family"),
(int)sockaddr->type.sa.sa_family);
}
}
@@ -430,9 +433,10 @@ isc_sockaddr_getport(const isc_sockaddr_t *sockaddr) {
break;
default:
FATAL_ERROR(__FILE__, __LINE__,
+ "%s: %d",
isc_msgcat_get(isc_msgcat, ISC_MSGSET_SOCKADDR,
ISC_MSG_UNKNOWNFAMILY,
- "unknown address family: %d"),
+ "unknown address family"),
(int)sockaddr->type.sa.sa_family);
}
diff --git a/lib/isc/unix/ifiter_getifaddrs.c b/lib/isc/unix/ifiter_getifaddrs.c
index 547a83f07937..c2e4044ac008 100644
--- a/lib/isc/unix/ifiter_getifaddrs.c
+++ b/lib/isc/unix/ifiter_getifaddrs.c
@@ -96,9 +96,13 @@ isc_interfaceiter_create(isc_mem_t *mctx, isc_interfaceiter_t **iterp) {
}
if (ret < 0) {
isc__strerror(errno, strbuf, sizeof(strbuf));
- UNEXPECTED_ERROR(__FILE__, __LINE__, isc_msgcat_get(isc_msgcat,
- ISC_MSGSET_IFITERGETIFADDRS, ISC_MSG_GETIFADDRS,
- "getting interface addresses: getifaddrs: %s"), strbuf);
+ UNEXPECTED_ERROR(__FILE__, __LINE__,
+ "getting interface addresses: %s: %s",
+ isc_msgcat_get(isc_msgcat,
+ ISC_MSGSET_IFITERGETIFADDRS,
+ ISC_MSG_GETIFADDRS,
+ "getifaddrs"),
+ strbuf);
result = ISC_R_UNEXPECTED;
goto failure;
}
diff --git a/libjsmn/jsmn.c b/libjsmn/jsmn.c
index 4f70adb0db24..aa8b12b8020d 100644
--- a/libjsmn/jsmn.c
+++ b/libjsmn/jsmn.c
@@ -9,7 +9,7 @@
static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser,
jsmntok_t *tokens, size_t num_tokens) {
jsmntok_t *tok;
- if (parser->toknext >= num_tokens) {
+ if ((size_t)parser->toknext >= num_tokens) {
return NULL;
}
tok = &tokens[parser->toknext++];
@@ -108,6 +108,8 @@ static jsmnerr_t jsmn_parse_string(jsmn_parser *parser, const char *js,
/* Backslash: Quoted symbol expected */
if (c == '\\') {
+ int i = 0;
+
parser->pos++;
switch (js[parser->pos]) {
/* Allowed escaped symbols */
@@ -117,7 +119,6 @@ static jsmnerr_t jsmn_parse_string(jsmn_parser *parser, const char *js,
/* Allows escaped symbol \uXXXX */
case 'u':
parser->pos++;
- int i = 0;
for(; i < 4 && js[parser->pos] != '\0'; i++) {
/* If it isn't a hex character we have an error */
if(!((js[parser->pos] >= 48 && js[parser->pos] <= 57) || /* 0-9 */
diff --git a/libntp/Makefile.in b/libntp/Makefile.in
index 39f287521e15..ca8b13c50ba6 100644
--- a/libntp/Makefile.in
+++ b/libntp/Makefile.in
@@ -268,6 +268,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -302,7 +303,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/libntp/atoint.c b/libntp/atoint.c
index 1064b366af16..9da8c13c32d6 100644
--- a/libntp/atoint.c
+++ b/libntp/atoint.c
@@ -35,7 +35,7 @@ atoint(
u = 0;
while (*cp != '\0') {
- if (!isdigit((int)*cp))
+ if (!isdigit((unsigned char)*cp))
return 0;
if (u > 214748364 || (u == 214748364 && *cp > oflow_digit))
return 0; /* overflow */
diff --git a/libntp/atolfp.c b/libntp/atolfp.c
index 4afeb23d33aa..3a65f6bcb2f7 100644
--- a/libntp/atolfp.c
+++ b/libntp/atolfp.c
@@ -52,7 +52,7 @@ atolfp(
*
* [spaces][-|+][digits][.][digits][spaces|\n|\0]
*/
- while (isspace((int)*cp))
+ while (isspace((unsigned char)*cp))
cp++;
if (*cp == '-') {
@@ -63,7 +63,7 @@ atolfp(
if (*cp == '+')
cp++;
- if (*cp != '.' && !isdigit((int)*cp))
+ if (*cp != '.' && !isdigit((unsigned char)*cp))
return 0;
while (*cp != '\0' && (ind = strchr(digits, *cp)) != NULL) {
@@ -72,7 +72,7 @@ atolfp(
cp++;
}
- if (*cp != '\0' && !isspace((int)*cp)) {
+ if (*cp != '\0' && !isspace((unsigned char)*cp)) {
if (*cp++ != '.')
return 0;
@@ -84,10 +84,10 @@ atolfp(
cp++;
}
- while (isdigit((int)*cp))
+ while (isdigit((unsigned char)*cp))
cp++;
- if (*cp != '\0' && !isspace((int)*cp))
+ if (*cp != '\0' && !isspace((unsigned char)*cp))
return 0;
}
diff --git a/libntp/atouint.c b/libntp/atouint.c
index ab86130dfcdc..0a6163907a51 100644
--- a/libntp/atouint.c
+++ b/libntp/atouint.c
@@ -28,7 +28,7 @@ atouint(
u = 0;
while ('\0' != *cp) {
- if (!isdigit(*cp))
+ if (!isdigit((unsigned char)*cp))
return 0;
if (u > 429496729 || (u == 429496729 && *cp >= '6'))
return 0; /* overflow */
diff --git a/libntp/audio.c b/libntp/audio.c
index 2a56619827f4..6f2262c991f3 100644
--- a/libntp/audio.c
+++ b/libntp/audio.c
@@ -67,7 +67,7 @@ static struct audio_info info; /* audio device info */
static int ctl_fd; /* audio control file descriptor */
#ifdef PCM_STYLE_SOUND
-static void audio_config_read (int, char **, char **);
+static void audio_config_read (int, const char **, const char **);
static int mixer_name (const char *, int);
@@ -114,8 +114,8 @@ mixer_name(
static void
audio_config_read(
int unit,
- char **c_dev, /* Control device */
- char **i_dev /* input device */
+ const char **c_dev, /* Control device */
+ const char **i_dev /* input device */
)
{
FILE *fd;
@@ -148,12 +148,12 @@ audio_config_read(
/* Remove any trailing spaces */
for (i = strlen(line);
- i > 0 && isascii((int)line[i - 1]) && isspace((int)line[i - 1]);
+ i > 0 && isascii((unsigned char)line[i - 1]) && isspace((unsigned char)line[i - 1]);
)
line[--i] = '\0';
/* Remove leading space */
- for (cc = line; *cc && isascii((int)*cc) && isspace((int)*cc); cc++)
+ for (cc = line; *cc && isascii((unsigned char)*cc) && isspace((unsigned char)*cc); cc++)
continue;
/* Stop if nothing left */
@@ -162,16 +162,16 @@ audio_config_read(
/* Uppercase the command and find the arg */
for (ca = cc; *ca; ca++) {
- if (isascii((int)*ca)) {
- if (islower((int)*ca)) {
- *ca = toupper(*ca);
- } else if (isspace((int)*ca) || (*ca == '='))
+ if (isascii((unsigned char)*ca)) {
+ if (islower((unsigned char)*ca)) {
+ *ca = toupper((unsigned char)*ca);
+ } else if (isspace((unsigned char)*ca) || (*ca == '='))
break;
}
}
/* Remove space (and possible =) leading the arg */
- for (; *ca && isascii((int)*ca) && (isspace((int)*ca) || (*ca == '=')); ca++)
+ for (; *ca && isascii((unsigned char)*ca) && (isspace((unsigned char)*ca) || (*ca == '=')); ca++)
continue;
if (!strncmp(cc, "IDEV", 4) &&
@@ -210,7 +210,7 @@ audio_config_read(
*/
int
audio_init(
- char *dname, /* device name */
+ const char *dname, /* device name */
int bufsiz, /* buffer size */
int unit /* device unit (0-3) */
)
@@ -227,7 +227,7 @@ audio_init(
#endif
int fd;
int rval;
- char *actl =
+ const char *actl =
#ifdef PCM_STYLE_SOUND
actl_dev
#else
diff --git a/libntp/authkeys.c b/libntp/authkeys.c
index 7b4427cd2f40..68771ffb339f 100644
--- a/libntp/authkeys.c
+++ b/libntp/authkeys.c
@@ -517,7 +517,7 @@ MD5auth_setkey(
keyid_t keyno,
int keytype,
const u_char *key,
- int len
+ size_t len
)
{
symkey * sk;
@@ -527,7 +527,6 @@ MD5auth_setkey(
DEBUG_ENSURE(keytype <= USHRT_MAX);
DEBUG_ENSURE(len < 4 * 1024);
- len = max(0, len);
/*
* See if we already have the key. If so just stick in the
* new value.
diff --git a/libntp/authreadkeys.c b/libntp/authreadkeys.c
index 9b02119d169a..e8ddc942a665 100644
--- a/libntp/authreadkeys.c
+++ b/libntp/authreadkeys.c
@@ -77,8 +77,8 @@ authreadkeys(
int keytype;
char buf[512]; /* lots of room for line */
u_char keystr[32]; /* Bug 2537 */
- int len;
- int j;
+ size_t len;
+ size_t j;
/*
* Open file. Complain and return if it can't be opened.
@@ -181,11 +181,11 @@ authreadkeys(
char hex[] = "0123456789abcdef";
u_char temp;
char *ptr;
- int jlim;
+ size_t jlim;
jlim = min(len, 2 * sizeof(keystr));
for (j = 0; j < jlim; j++) {
- ptr = strchr(hex, tolower(token[j]));
+ ptr = strchr(hex, tolower((unsigned char)token[j]));
if (ptr == NULL)
break; /* abort decoding */
temp = (u_char)(ptr - hex);
diff --git a/libntp/emalloc.c b/libntp/emalloc.c
index c49c5c1e1781..6c1c6787ea41 100644
--- a/libntp/emalloc.c
+++ b/libntp/emalloc.c
@@ -86,6 +86,7 @@ estrdup_impl(
}
+#if 0
#ifndef EREALLOC_CALLSITE
void *
emalloc(size_t newsz)
@@ -93,4 +94,5 @@ emalloc(size_t newsz)
return ereallocz(NULL, newsz, 0, FALSE);
}
#endif
+#endif
diff --git a/libntp/hextoint.c b/libntp/hextoint.c
index d24b5a0bf8a5..980a43f9d899 100644
--- a/libntp/hextoint.c
+++ b/libntp/hextoint.c
@@ -23,7 +23,7 @@ hextoint(
u = 0;
while (*cp != '\0') {
- if (!isxdigit(*cp))
+ if (!isxdigit((unsigned char)*cp))
return 0;
if (u & 0xF0000000)
return 0; /* overflow */
diff --git a/libntp/hextolfp.c b/libntp/hextolfp.c
index 8fbce2e5b863..2bff929dc388 100644
--- a/libntp/hextolfp.c
+++ b/libntp/hextolfp.c
@@ -30,7 +30,7 @@ hextolfp(
*
* [spaces]8_hex_digits[.]8_hex_digits[spaces|\n|\0]
*/
- while (isspace((int)*cp))
+ while (isspace((unsigned char)*cp))
cp++;
cpstart = cp;
@@ -59,7 +59,7 @@ hextolfp(
if ((cp - cpstart) < 8 || ind == NULL)
return 0;
- if (*cp != '\0' && !isspace((int)*cp))
+ if (*cp != '\0' && !isspace((unsigned char)*cp))
return 0;
lfp->l_ui = dec_i;
diff --git a/libntp/humandate.c b/libntp/humandate.c
index f88d8d24cb4d..d9d5e89df017 100644
--- a/libntp/humandate.c
+++ b/libntp/humandate.c
@@ -13,7 +13,7 @@
/* This is used in msyslog.c; we don't want to clutter up the log with
the year and day of the week, etc.; just the minimal date and time. */
-char *
+const char *
humanlogtime(void)
{
char * bp;
@@ -39,7 +39,7 @@ humanlogtime(void)
* humantime() -- like humanlogtime() but without date, and with the
* time to display given as an argument.
*/
-char *
+const char *
humantime(
time_t cursec
)
diff --git a/libntp/icom.c b/libntp/icom.c
index c981d8548418..80700114255e 100644
--- a/libntp/icom.c
+++ b/libntp/icom.c
@@ -121,17 +121,15 @@ doublefreq( /* returns void */
*/
int
icom_init(
- char *device, /* device name/link */
+ const char *device, /* device name/link */
int speed, /* line speed */
int trace /* trace flags */ )
{
TTY ttyb;
int fd;
- int flags;
int rc;
int saved_errno;
- flags = trace;
fd = tty_open(device, O_RDWR, 0777);
if (fd < 0)
return -1;
diff --git a/libntp/modetoa.c b/libntp/modetoa.c
index b476bc9e90f2..6f13d20580bf 100644
--- a/libntp/modetoa.c
+++ b/libntp/modetoa.c
@@ -9,7 +9,7 @@
const char *
modetoa(
- int mode
+ size_t mode
)
{
char *bp;
@@ -25,9 +25,9 @@ modetoa(
"bclient",
};
- if (mode < 0 || mode >= COUNTOF(modestrings)) {
+ if (mode >= COUNTOF(modestrings)) {
LIB_GETBUF(bp);
- snprintf(bp, LIB_BUFLENGTH, "mode#%d", mode);
+ snprintf(bp, LIB_BUFLENGTH, "mode#%zu", mode);
return bp;
}
diff --git a/libntp/mstolfp.c b/libntp/mstolfp.c
index 1a1a02b5fc46..828b14cfbca8 100644
--- a/libntp/mstolfp.c
+++ b/libntp/mstolfp.c
@@ -32,7 +32,7 @@ mstolfp(
*/
bp = buf;
cp = str;
- while (isspace((int)*cp))
+ while (isspace((unsigned char)*cp))
cp++;
if (*cp == '-') {
@@ -40,7 +40,7 @@ mstolfp(
cp++;
}
- if (*cp != '.' && !isdigit((int)*cp))
+ if (*cp != '.' && !isdigit((unsigned char)*cp))
return 0;
@@ -48,7 +48,7 @@ mstolfp(
* Search forward for the decimal point or the end of the string.
*/
cpdec = cp;
- while (isdigit((int)*cpdec))
+ while (isdigit((unsigned char)*cpdec))
cpdec++;
/*
@@ -86,7 +86,7 @@ mstolfp(
if (*cp == '.') {
cp++;
- while (isdigit((int)*cp))
+ while (isdigit((unsigned char)*cp))
*bp++ = (char)*cp++;
}
*bp = '\0';
@@ -95,7 +95,7 @@ mstolfp(
* Check to make sure the string is properly terminated. If
* so, give the buffer to the decoding routine.
*/
- if (*cp != '\0' && !isspace((int)*cp))
+ if (*cp != '\0' && !isspace((unsigned char)*cp))
return 0;
return atolfp(buf, lfp);
}
diff --git a/libntp/ntp_calendar.c b/libntp/ntp_calendar.c
index e557f4ec682e..94ca0e9ee154 100644
--- a/libntp/ntp_calendar.c
+++ b/libntp/ntp_calendar.c
@@ -153,7 +153,11 @@ ntpcal_get_build_date(
* problem.
*
*/
+#ifdef MKREPRO_DATE
+ static const char build[] = MKREPRO_TIME "/" MKREPRO_DATE;
+#else
static const char build[] = __TIME__ "/" __DATE__;
+#endif
static const char mlist[] = "JanFebMarAprMayJunJulAugSepOctNovDec";
char monstr[4];
@@ -1561,7 +1565,7 @@ isocal_ntp64_to_date(
id->year = (uint16_t)ds.hi + 1; /* shift to current */
id->week = (uint8_t )ds.lo + 1;
- return (ds.hi >= 0 && ds.hi < 0xFFFFU);
+ return (ds.hi >= 0 && ds.hi < 0x0000FFFF);
}
int
diff --git a/libntp/ntp_crypto_rnd.c b/libntp/ntp_crypto_rnd.c
index 62a808db3447..96348f2e8696 100644
--- a/libntp/ntp_crypto_rnd.c
+++ b/libntp/ntp_crypto_rnd.c
@@ -22,6 +22,22 @@
#include <openssl/rand.h>
int crypto_rand_init = 0;
+#else
+
+# ifndef HAVE_ARC4RANDOM_BUF
+static void
+arc4random_buf(void *buf, size_t nbytes);
+
+void
+evutil_secure_rng_get_bytes(void *buf, size_t nbytes);
+
+static void
+arc4random_buf(void *buf, size_t nbytes)
+{
+ evutil_secure_rng_get_bytes(buf, nbytes);
+ return;
+}
+# endif
#endif
/*
@@ -85,6 +101,7 @@ ntp_crypto_random_buf(
err = ERR_get_error();
err_str = ERR_error_string(err, NULL);
/* XXX: Log the error */
+ (void)&err_str;
return -1;
}
diff --git a/libntp/ntp_intres.c b/libntp/ntp_intres.c
index 2ac70c1a416d..eea88a127378 100644
--- a/libntp/ntp_intres.c
+++ b/libntp/ntp_intres.c
@@ -684,11 +684,11 @@ blocking_getnameinfo(
blocking_gni_resp * gni_resp;
size_t octets;
size_t resp_octets;
- char * host;
char * service;
char * cp;
int rc;
time_t time_now;
+ char host[1024];
gni_req = (void *)((char *)req + sizeof(*req));
@@ -699,19 +699,7 @@ blocking_getnameinfo(
* large allocations. We only need room for the host
* and service names.
*/
- NTP_REQUIRE(octets < 1024);
-
-#ifndef HAVE_ALLOCA
- host = emalloc(octets);
-#else
- host = alloca(octets);
- if (NULL == host) {
- msyslog(LOG_ERR,
- "blocking_getnameinfo unable to allocate %lu octets on stack",
- (u_long)octets);
- exit(1);
- }
-#endif
+ NTP_REQUIRE(octets < sizeof(host));
service = host + gni_req->hostoctets;
worker_ctx = get_worker_context(c, gni_req->dns_idx);
@@ -793,9 +781,6 @@ blocking_getnameinfo(
rc = queue_blocking_response(c, resp, resp_octets, req);
if (rc)
msyslog(LOG_ERR, "blocking_getnameinfo unable to queue response");
-#ifndef HAVE_ALLOCA
- free(host);
-#endif
return rc;
}
diff --git a/libntp/ntp_lineedit.c b/libntp/ntp_lineedit.c
index c5aad3108614..e3bc0022a292 100644
--- a/libntp/ntp_lineedit.c
+++ b/libntp/ntp_lineedit.c
@@ -178,23 +178,22 @@ ntp_readline(
if (NULL != line) {
if (*line) {
add_history(line);
- *pcount = strlen(line);
- } else {
- free(line);
- line = NULL;
}
+ *pcount = strlen(line);
}
#endif /* LE_READLINE */
#ifdef LE_EDITLINE
cline = el_gets(ntp_el, pcount);
- if (NULL != cline && *cline) {
+ if (NULL != cline) {
history(ntp_hist, &hev, H_ENTER, cline);
- *pcount = strlen(cline);
line = estrdup(cline);
- } else
+ } else if (*pcount == -1) {
line = NULL;
+ } else {
+ line = estrdup("");
+ }
#endif /* LE_EDITLINE */
#ifdef LE_NONE
diff --git a/libntp/octtoint.c b/libntp/octtoint.c
index d189e40c494d..e519601d067e 100644
--- a/libntp/octtoint.c
+++ b/libntp/octtoint.c
@@ -24,7 +24,7 @@ octtoint(
u = 0;
while (*cp != '\0') {
- if (!isdigit((int)*cp) || *cp == '8' || *cp == '9')
+ if (!isdigit((unsigned char)*cp) || *cp == '8' || *cp == '9')
return 0;
if (u >= 0x20000000)
return 0; /* overflow */
diff --git a/libntp/prettydate.c b/libntp/prettydate.c
index f12129716199..5da5ecc50a69 100644
--- a/libntp/prettydate.c
+++ b/libntp/prettydate.c
@@ -133,7 +133,7 @@ get_struct_tm(
if (--folds < MINFOLD)
return NULL;
ts += SOLAR_CYCLE_SECS;
- } else if (ts >= SOLAR_CYCLE_SECS) {
+ } else if (ts >= (time_t)SOLAR_CYCLE_SECS) {
if (++folds > MAXFOLD)
return NULL;
ts -= SOLAR_CYCLE_SECS;
@@ -157,10 +157,10 @@ common_prettydate(
int local
)
{
- static const char* pfmt[2] = {
- "%08lx.%08lx %s, %s %2d %4d %2d:%02d:%02d.%03u",
- "%08lx.%08lx [%s, %s %2d %4d %2d:%02d:%02d.%03u UTC]"
- };
+ static const char pfmt0[] =
+ "%08lx.%08lx %s, %s %2d %4d %2d:%02d:%02d.%03u";
+ static const char pfmt1[] =
+ "%08lx.%08lx [%s, %s %2d %4d %2d:%02d:%02d.%03u UTC]";
char *bp;
struct tm *tm;
@@ -186,13 +186,13 @@ common_prettydate(
*/
struct calendar jd;
ntpcal_time_to_date(&jd, &sec);
- snprintf(bp, LIB_BUFLENGTH, pfmt[local != 0],
+ snprintf(bp, LIB_BUFLENGTH, local ? pfmt1 : pfmt0,
(u_long)ts->l_ui, (u_long)ts->l_uf,
daynames[jd.weekday], months[jd.month-1],
jd.monthday, jd.year, jd.hour,
jd.minute, jd.second, msec);
} else
- snprintf(bp, LIB_BUFLENGTH, pfmt[0],
+ snprintf(bp, LIB_BUFLENGTH, pfmt0,
(u_long)ts->l_ui, (u_long)ts->l_uf,
daynames[tm->tm_wday], months[tm->tm_mon],
tm->tm_mday, 1900 + tm->tm_year, tm->tm_hour,
diff --git a/libntp/ssl_init.c b/libntp/ssl_init.c
index 7f1e9a096b20..a9d1d546dfb8 100644
--- a/libntp/ssl_init.c
+++ b/libntp/ssl_init.c
@@ -96,13 +96,13 @@ keytype_from_text(
LIB_GETBUF(upcased);
strlcpy(upcased, text, LIB_BUFLENGTH);
for (pch = upcased; '\0' != *pch; pch++)
- *pch = (char)toupper(*pch);
+ *pch = (char)toupper((unsigned char)*pch);
key_type = OBJ_sn2nid(upcased);
#else
key_type = 0;
#endif
- if (!key_type && 'm' == tolower(text[0]))
+ if (!key_type && 'm' == tolower((unsigned char)text[0]))
key_type = NID_md5;
if (!key_type)
diff --git a/libntp/timetoa.c b/libntp/timetoa.c
index c04d34ea0639..f294e16107f9 100644
--- a/libntp/timetoa.c
+++ b/libntp/timetoa.c
@@ -57,14 +57,12 @@ format_time_fraction(
u_int u;
long fraclimit;
int notneg; /* flag for non-negative value */
- const char * fmt;
ldiv_t qr;
DEBUG_REQUIRE(prec != 0);
LIB_GETBUF(cp);
secs_u = (u_time)secs;
- fmt = "-%" UTIME_FORMAT ".%0*ld";
/* check if we need signed or unsigned mode */
notneg = (prec < 0);
@@ -92,9 +90,7 @@ format_time_fraction(
/* Get the absolute value of the split representation time. */
notneg = notneg || ((time_t)secs_u >= 0);
- if (notneg) {
- fmt++; /* skip '-' */
- } else {
+ if (!notneg) {
secs_u = ~secs_u;
if (0 == frac)
secs_u++;
@@ -103,7 +99,8 @@ format_time_fraction(
}
/* finally format the data and return the result */
- snprintf(cp, LIB_BUFLENGTH, fmt, secs_u, prec_u, frac);
+ snprintf(cp, LIB_BUFLENGTH, "%s%" UTIME_FORMAT ".%0*ld",
+ notneg? "" : "-", secs_u, prec_u, frac);
return cp;
}
diff --git a/libparse/Makefile.am b/libparse/Makefile.am
index a92db1546cbf..2988e08e2bc2 100644
--- a/libparse/Makefile.am
+++ b/libparse/Makefile.am
@@ -1,5 +1,5 @@
NULL=
-BUILT_SOURCES =
+BUILT_SOURCES = $(VPHACK) info_trimble.c $(VPHACK_AFTER)
CLEANFILES =
noinst_LIBRARIES = @MAKE_LIBPARSE@ @MAKE_LIBPARSE_KERNEL@
EXTRA_LIBRARIES = libparse.a libparse_kernel.a
@@ -12,6 +12,29 @@ K_CFLAGS = -DPARSESTREAM -DNTP_NEED_BOPS
# previously. It is located in $(srcdir) and any updates must
# end up there.
+#
+# VPHACK and VPHACK_AFTER are enabled on non-GNU makes (such as
+# BSD make) to work around build/dependency issues where we want
+# built source files to live in srcdir, as opposed to builddir.
+#
+
+if VPATH_HACK
+VPHACK= vphack
+VPHACK_AFTER= vphack_after
+else
+VPHACK=
+VPHACK_AFTER=
+endif
+
+vphack:
+ test -e info_trimble.c || ln -s $(srcdir)/info_trimble.c .
+
+vphack_after:
+ test -L info_trimble.c || ( \
+ mv info_trimble.c $(srcdir)/info_trimble.c && \
+ ln -s $(srcdir)/info_trimble.c . \
+ )
+
libparse_a_SOURCES = parse.c \
parse_conf.c \
clk_meinberg.c \
@@ -65,11 +88,16 @@ AM_CPPFLAGS += $(CPPFLAGS_NTP)
EXTRA_DIST = parsesolaris.c parsestreams.c mkinfo_scmd.sed mkinfo_rcmd.sed info_trimble.c
-$(srcdir)/info_trimble.c: $(top_srcdir)/include/trimble.h $(srcdir)/Makefile.am $(srcdir)/mkinfo_scmd.sed $(srcdir)/mkinfo_rcmd.sed
+info_trimble.c: $(top_srcdir)/include/trimble.h $(srcdir)/Makefile.am $(srcdir)/mkinfo_scmd.sed $(srcdir)/mkinfo_rcmd.sed
sed -n -f $(srcdir)/mkinfo_scmd.sed $(top_srcdir)/include/trimble.h > info_trimble.new
sed -n -f $(srcdir)/mkinfo_rcmd.sed $(top_srcdir)/include/trimble.h >> info_trimble.new
mv -f info_trimble.new $@
+#$(srcdir)/info_trimble.c: $(top_srcdir)/include/trimble.h $(srcdir)/Makefile.am $(srcdir)/mkinfo_scmd.sed $(srcdir)/mkinfo_rcmd.sed
+# sed -n -f $(srcdir)/mkinfo_scmd.sed $(top_srcdir)/include/trimble.h > info_trimble.new
+# sed -n -f $(srcdir)/mkinfo_rcmd.sed $(top_srcdir)/include/trimble.h >> info_trimble.new
+# mv -f info_trimble.new $@
+
kieee754io.o: $(srcdir)/ieee754io.c
$(COMPILE) $(K_CFLAGS) -c $(srcdir)/ieee754io.c -o $@
diff --git a/libparse/Makefile.in b/libparse/Makefile.in
index 606763edf963..15a989b318fd 100644
--- a/libparse/Makefile.in
+++ b/libparse/Makefile.in
@@ -176,6 +176,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -210,7 +211,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
@@ -408,16 +411,27 @@ top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
NULL =
-BUILT_SOURCES = check-libntp .deps-ver
+BUILT_SOURCES = $(VPHACK) info_trimble.c $(VPHACK_AFTER) check-libntp \
+ .deps-ver
CLEANFILES = check-libntp .deps-ver
noinst_LIBRARIES = @MAKE_LIBPARSE@ @MAKE_LIBPARSE_KERNEL@
EXTRA_LIBRARIES = libparse.a libparse_kernel.a
noinst_PROGRAMS = @MAKE_PARSEKMODULE@
K_CFLAGS = -DPARSESTREAM -DNTP_NEED_BOPS
+@VPATH_HACK_FALSE@VPHACK =
# info_trimble.c was mistakenly created in the build directory
# previously. It is located in $(srcdir) and any updates must
# end up there.
+
+#
+# VPHACK and VPHACK_AFTER are enabled on non-GNU makes (such as
+# BSD make) to work around build/dependency issues where we want
+# built source files to live in srcdir, as opposed to builddir.
+#
+@VPATH_HACK_TRUE@VPHACK = vphack
+@VPATH_HACK_FALSE@VPHACK_AFTER =
+@VPATH_HACK_TRUE@VPHACK_AFTER = vphack_after
libparse_a_SOURCES = parse.c \
parse_conf.c \
clk_meinberg.c \
@@ -794,11 +808,25 @@ uninstall-am:
tags uninstall uninstall-am
-$(srcdir)/info_trimble.c: $(top_srcdir)/include/trimble.h $(srcdir)/Makefile.am $(srcdir)/mkinfo_scmd.sed $(srcdir)/mkinfo_rcmd.sed
+vphack:
+ test -e info_trimble.c || ln -s $(srcdir)/info_trimble.c .
+
+vphack_after:
+ test -L info_trimble.c || ( \
+ mv info_trimble.c $(srcdir)/info_trimble.c && \
+ ln -s $(srcdir)/info_trimble.c . \
+ )
+
+info_trimble.c: $(top_srcdir)/include/trimble.h $(srcdir)/Makefile.am $(srcdir)/mkinfo_scmd.sed $(srcdir)/mkinfo_rcmd.sed
sed -n -f $(srcdir)/mkinfo_scmd.sed $(top_srcdir)/include/trimble.h > info_trimble.new
sed -n -f $(srcdir)/mkinfo_rcmd.sed $(top_srcdir)/include/trimble.h >> info_trimble.new
mv -f info_trimble.new $@
+#$(srcdir)/info_trimble.c: $(top_srcdir)/include/trimble.h $(srcdir)/Makefile.am $(srcdir)/mkinfo_scmd.sed $(srcdir)/mkinfo_rcmd.sed
+# sed -n -f $(srcdir)/mkinfo_scmd.sed $(top_srcdir)/include/trimble.h > info_trimble.new
+# sed -n -f $(srcdir)/mkinfo_rcmd.sed $(top_srcdir)/include/trimble.h >> info_trimble.new
+# mv -f info_trimble.new $@
+
kieee754io.o: $(srcdir)/ieee754io.c
$(COMPILE) $(K_CFLAGS) -c $(srcdir)/ieee754io.c -o $@
diff --git a/libparse/clk_meinberg.c b/libparse/clk_meinberg.c
index bc0ac0e8170a..a94c3f7a2edd 100644
--- a/libparse/clk_meinberg.c
+++ b/libparse/clk_meinberg.c
@@ -157,7 +157,7 @@ mbg_csum(
)
{
unsigned long sum = 0;
- short i;
+ unsigned int i;
for ( i = 0; i < n; i++ )
sum += *p++;
diff --git a/libparse/clk_rawdcf.c b/libparse/clk_rawdcf.c
index 98848bee8fb0..d6e4b184c050 100644
--- a/libparse/clk_rawdcf.c
+++ b/libparse/clk_rawdcf.c
@@ -125,12 +125,12 @@ clockformat_t clock_rawdcf =
static struct dcfparam
{
- unsigned char *onebits;
- unsigned char *zerobits;
+ const unsigned char *onebits;
+ const unsigned char *zerobits;
} dcfparameter =
{
- (unsigned char *)"###############RADMLS1248124P124812P1248121241248112481248P??", /* 'ONE' representation */
- (unsigned char *)"--------------------s-------p------p----------------------p__" /* 'ZERO' representation */
+ (const unsigned char *)"###############RADMLS1248124P124812P1248121241248112481248P??", /* 'ONE' representation */
+ (const unsigned char *)"--------------------s-------p------p----------------------p__" /* 'ZERO' representation */
};
static struct rawdcfcode
@@ -182,7 +182,7 @@ static u_long
ext_bf(
unsigned char *buf,
int idx,
- unsigned char *zero
+ const unsigned char *zero
)
{
u_long sum = 0;
@@ -202,7 +202,7 @@ static unsigned
pcheck(
unsigned char *buf,
int idx,
- unsigned char *zero
+ const unsigned char *zero
)
{
int i,last;
@@ -225,8 +225,8 @@ convert_rawdcf(
)
{
unsigned char *s = buffer;
- unsigned char *b = dcfprm->onebits;
- unsigned char *c = dcfprm->zerobits;
+ const unsigned char *b = dcfprm->onebits;
+ const unsigned char *c = dcfprm->zerobits;
int i;
parseprintf(DD_RAWDCF,("parse: convert_rawdcf: \"%s\"\n", buffer));
@@ -342,8 +342,8 @@ cvt_rawdcf(
last_tcode_t *t = (last_tcode_t *)local;
unsigned char *s = (unsigned char *)buffer;
unsigned char *e = s + size;
- unsigned char *b = dcfparameter.onebits;
- unsigned char *c = dcfparameter.zerobits;
+ const unsigned char *b = dcfparameter.onebits;
+ const unsigned char *c = dcfparameter.zerobits;
u_long rtc = CVT_NONE;
unsigned int i, lowmax, highmax, cutoff, span;
#define BITS 9
diff --git a/libparse/data_mbg.c b/libparse/data_mbg.c
index 97bef35c4479..23ca75509180 100644
--- a/libparse/data_mbg.c
+++ b/libparse/data_mbg.c
@@ -266,8 +266,8 @@ mbg_tm_str(
tmp->year, tmp->month, tmp->mday,
tmp->hour, tmp->minute, tmp->second, tmp->frac,
(tmp->offs_from_utc < 0) ? '-' : '+',
- abs(tmp->offs_from_utc) / 3600,
- (abs(tmp->offs_from_utc) / 60) % 60);
+ abs((int)tmp->offs_from_utc) / 3600,
+ (abs((int)tmp->offs_from_utc) / 60) % 60);
*buffpp += strlen(*buffpp);
mbg_time_status_str(buffpp, tmp->status, size - (*buffpp - s));
@@ -383,7 +383,7 @@ get_mbg_comparam(
COM_PARM *comparamp
)
{
- int i;
+ size_t i;
comparamp->baud_rate = get_lsb_long(buffpp);
for (i = 0; i < sizeof(comparamp->framing); i++)
diff --git a/libparse/info_trimble.c b/libparse/info_trimble.c
index eea6cbd3f52c..53b2e32c1ac5 100644
--- a/libparse/info_trimble.c
+++ b/libparse/info_trimble.c
@@ -2,6 +2,7 @@
* Automatically generated - do not modify
*/
+#include <config.h>
#include "ntp_types.h"
#include "ntpd.h"
#include "trimble.h"
@@ -47,7 +48,7 @@ cmd_info_t trimble_scmds[] = {
{ CMD_CHIGH8CNT, "CMD_CHIGH8CNT", "high-8 (best 4) / high-6 (overdetermined) control (0x75)", "", 0 },
{ CMD_CMAXDGPSCOR, "CMD_CMAXDGPSCOR", "maximum rate of DGPS corrections (0x77)", "", 0 },
{ CMD_CSUPER, "CMD_CSUPER", "super paket (0x8E)", "", 0 },
- { 0xFF, "", "" }
+ { 0xFF, "", "", "", 0 }
};
@@ -89,6 +90,5 @@ cmd_info_t trimble_rcmds[] = {
{ CMD_RDOUBLELLA, "CMD_RDOUBLELLA", "double precision LLA (0x84)", "gps_position_ext(LLA)", RO|DEF },
{ CMD_RDGPSSTAT, "CMD_RDGPSSTAT", "differential correction status (0x85)", "trimble_dgpsstatus", RO },
{ CMD_RSUPER, "CMD_RSUPER", "super paket (0x8F)", "", 0 },
- { 0xFF, "", "" }
+ { 0xFF, "", "", "", 0 }
};
-
diff --git a/libparse/mkinfo_rcmd.sed b/libparse/mkinfo_rcmd.sed
index 5238d5c4eb13..b8ed6232e615 100644
--- a/libparse/mkinfo_rcmd.sed
+++ b/libparse/mkinfo_rcmd.sed
@@ -4,5 +4,5 @@
cmd_info_t trimble_rcmds[] = {
s!^#define[ \ ][ \ ]*\(CMD_R[^ \ ]*\)[ \ ][ \ ]*\([^ \ ]*\)[ \ ][ \ ]*/\*[ \ ][ \ ]*\(.*\)[ \ ]*:\([^:]*\):\([^:]*\)[ \ ][ \ ]*\*/!\ { \1, "\1", "\3 (\2)", "\4", \5 },!p
$a\
-\ { 0xFF, "", "" }\
+\ { 0xFF, "", "", "", 0 }\
};
diff --git a/libparse/mkinfo_scmd.sed b/libparse/mkinfo_scmd.sed
index 9c17f39ed703..fb58d32db5d3 100644
--- a/libparse/mkinfo_scmd.sed
+++ b/libparse/mkinfo_scmd.sed
@@ -11,5 +11,5 @@
cmd_info_t trimble_scmds[] = {
s!^#define[ ][ ]*\(CMD_C[^ ]*\)[ ][ ]*\([^ ]*\)[ ][ ]*/\*[ ][ ]*\(.*\)[ ][ ]*\*/! { \1, "\1", "\3 (\2)", "", 0 },!p
$a\
-\ { 0xFF, "", "" }\
+\ { 0xFF, "", "", "", 0 }\
};
diff --git a/ntpd/Makefile.am b/ntpd/Makefile.am
index b3af52738c12..344ac8eb2ce7 100644
--- a/ntpd/Makefile.am
+++ b/ntpd/Makefile.am
@@ -90,7 +90,7 @@ man_MANS= ntpd.$(NTPD_MS)
LDADD_NTPD_COMMON = $(LDADD_LIBNTP) $(LIBOPTS_LDADD) $(PTHREAD_LIBS)
LDADD_NTPD_COMMON += $(LIBM) $(LDADD_NTP) $(LSCF)
-ntpd_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(LDADD_NTPD_COMMON)
+ntpd_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_NTPD_COMMON) $(LDADD_LIBUTIL)
ntpdsim_LDADD = $(LDADD) ../libntp/libntpsim.a $(LDADD_NTPD_COMMON)
ntpdsim_CPPFLAGS = $(AM_CPPFLAGS) -DSIM
check_y2k_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(LDADD_LIBNTP) $(PTHREAD_LIBS)
diff --git a/ntpd/Makefile.in b/ntpd/Makefile.in
index ae050114fd53..5ba1cbf6c2ad 100644
--- a/ntpd/Makefile.in
+++ b/ntpd/Makefile.in
@@ -158,8 +158,7 @@ am__DEPENDENCIES_3 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
ntpd_DEPENDENCIES = $(am__DEPENDENCIES_2) ../libntp/libntp.a \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_3)
+ $(am__DEPENDENCIES_3) $(am__DEPENDENCIES_1)
am__objects_2 = ntpdsim-ntp_config.$(OBJEXT) ntpdsim-ntp_io.$(OBJEXT) \
ntpdsim-ntp_parser.$(OBJEXT) ntpdsim-ntp_scanner.$(OBJEXT) \
ntpdsim-ntpd.$(OBJEXT) ntpdsim-ntpd-opts.$(OBJEXT) \
@@ -256,6 +255,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -290,7 +290,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
@@ -537,7 +539,7 @@ man_MANS = ntpd.$(NTPD_MS)
# longer a reason to have ntpdbase-opts.def split off of ntpd-opts.def.
LDADD_NTPD_COMMON = $(LDADD_LIBNTP) $(LIBOPTS_LDADD) $(PTHREAD_LIBS) \
$(LIBM) $(LDADD_NTP) $(LSCF)
-ntpd_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(LDADD_NTPD_COMMON)
+ntpd_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_NTPD_COMMON) $(LDADD_LIBUTIL)
ntpdsim_LDADD = $(LDADD) ../libntp/libntpsim.a $(LDADD_NTPD_COMMON)
ntpdsim_CPPFLAGS = $(AM_CPPFLAGS) -DSIM
check_y2k_LDADD = $(LDADD) ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(LDADD_LIBNTP) $(PTHREAD_LIBS)
diff --git a/ntpd/invoke-ntp.conf.texi b/ntpd/invoke-ntp.conf.texi
index 2678c189270e..23569fc52f6f 100644
--- a/ntpd/invoke-ntp.conf.texi
+++ b/ntpd/invoke-ntp.conf.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp.conf.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:49:02 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:41:59 AM by AutoGen 5.18.5pre4
# From the definitions ntp.conf.def
# and the template file agtexi-file.tpl
@end ignore
@@ -365,6 +365,20 @@ 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
diff --git a/ntpd/invoke-ntp.keys.texi b/ntpd/invoke-ntp.keys.texi
index c8dc904d122a..dbafe1c733e9 100644
--- a/ntpd/invoke-ntp.keys.texi
+++ b/ntpd/invoke-ntp.keys.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp.keys.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:49:05 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:42:02 AM by AutoGen 5.18.5pre4
# From the definitions ntp.keys.def
# and the template file agtexi-file.tpl
@end ignore
diff --git a/ntpd/invoke-ntpd.texi b/ntpd/invoke-ntpd.texi
index e59b72f785eb..75a525702309 100644
--- a/ntpd/invoke-ntpd.texi
+++ b/ntpd/invoke-ntpd.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpd.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:49:06 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:42:04 AM by AutoGen 5.18.5pre4
# From the definitions ntpd-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -141,7 +141,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpd - NTP daemon program - Ver. 4.2.8
+ntpd - NTP daemon program - Ver. 4.2.8p1
Usage: ntpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
[ <server1> ... <serverN> ]
Flg Arg Option-Name Description
diff --git a/ntpd/keyword-gen-utd b/ntpd/keyword-gen-utd
index 7474a56ed7b6..0485feecca0c 100644
--- a/ntpd/keyword-gen-utd
+++ b/ntpd/keyword-gen-utd
@@ -1 +1 @@
- * Generated 2013-08-04 04:56:14 UTC diff_ignore_line
+ * Generated 2015-01-03 23:51:10 UTC diff_ignore_line
diff --git a/ntpd/keyword-gen.c b/ntpd/keyword-gen.c
index d4f77588d60c..bb593aba2e20 100644
--- a/ntpd/keyword-gen.c
+++ b/ntpd/keyword-gen.c
@@ -97,6 +97,7 @@ struct key_tok ntp_keywords[] = {
{ "iburst", T_Iburst, FOLLBY_TOKEN },
{ "key", T_Key, FOLLBY_TOKEN },
{ "maxpoll", T_Maxpoll, FOLLBY_TOKEN },
+{ "mdnstries", T_Mdnstries, FOLLBY_TOKEN },
{ "minpoll", T_Minpoll, FOLLBY_TOKEN },
{ "mode", T_Mode, FOLLBY_TOKEN },
{ "noselect", T_Noselect, FOLLBY_TOKEN },
@@ -357,7 +358,7 @@ generate_fsm(void)
fprintf(stderr,
"keyword-gen sst[%u] too small "
"for keyword '%s' id %d\n",
- COUNTOF(sst),
+ (int)COUNTOF(sst),
ntp_keywords[i].key,
token);
exit(4);
diff --git a/ntpd/ntp.conf.5man b/ntpd/ntp.conf.5man
index 95e9348cc55b..1e9ba668fe4d 100644
--- a/ntpd/ntp.conf.5man
+++ b/ntpd/ntp.conf.5man
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp.conf 5man "19 Dec 2014" "4.2.8" "File Formats"
+.TH ntp.conf 5man "04 Feb 2015" "4.2.8p1" "File Formats"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-eCaa6b/ag-rCai4b)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sPaOCn/ag-RPaGBn)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:48:49 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:41:46 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.conf.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -415,6 +415,21 @@ 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
@@ -2974,9 +2989,9 @@ RFC5905
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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
diff --git a/ntpd/ntp.conf.5mdoc b/ntpd/ntp.conf.5mdoc
index 3358d0c0b066..069a543cf2ea 100644
--- a/ntpd/ntp.conf.5mdoc
+++ b/ntpd/ntp.conf.5mdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_CONF 5mdoc File Formats
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:09 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:07 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.conf.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -402,6 +402,20 @@ 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
@@ -2784,9 +2798,9 @@ A snapshot of this documentation is available in HTML format in
.%O RFC5905
.Re
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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
diff --git a/ntpd/ntp.conf.def b/ntpd/ntp.conf.def
index 5a5af21f21d0..6f0bae12b3f5 100644
--- a/ntpd/ntp.conf.def
+++ b/ntpd/ntp.conf.def
@@ -404,6 +404,20 @@ 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
diff --git a/ntpd/ntp.conf.html b/ntpd/ntp.conf.html
index a57560a9a21e..b237cc025085 100644
--- a/ntpd/ntp.conf.html
+++ b/ntpd/ntp.conf.html
@@ -33,7 +33,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<p>This document describes the configuration file for the NTP Project's
<code>ntpd</code> program.
- <p>This document applies to version 4.2.8 of <code>ntp.conf</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntp.conf</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
@@ -403,6 +403,19 @@ 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
<a href="#Authentication-Options">Authentication Options</a>.
+<br><dt><code>mdnstries</code> <kbd>number</kbd><dd>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.
</dl>
<div class="node">
<p><hr>
diff --git a/ntpd/ntp.conf.man.in b/ntpd/ntp.conf.man.in
index eff1e4347ce6..ec2c866c750a 100644
--- a/ntpd/ntp.conf.man.in
+++ b/ntpd/ntp.conf.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp.conf 5 "19 Dec 2014" "4.2.8" "File Formats"
+.TH ntp.conf 5 "04 Feb 2015" "4.2.8p1" "File Formats"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-eCaa6b/ag-rCai4b)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-sPaOCn/ag-RPaGBn)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:48:49 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:41:46 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.conf.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -415,6 +415,21 @@ 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
@@ -2974,9 +2989,9 @@ RFC5905
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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
diff --git a/ntpd/ntp.conf.mdoc.in b/ntpd/ntp.conf.mdoc.in
index 01e5901b321c..ec45a749c3a0 100644
--- a/ntpd/ntp.conf.mdoc.in
+++ b/ntpd/ntp.conf.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_CONF 5 File Formats
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:09 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:07 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.conf.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -402,6 +402,20 @@ 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
@@ -2784,9 +2798,9 @@ A snapshot of this documentation is available in HTML format in
.%O RFC5905
.Re
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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
diff --git a/ntpd/ntp.keys.5man b/ntpd/ntp.keys.5man
index e6e57f7f0205..7ba8b5815f04 100644
--- a/ntpd/ntp.keys.5man
+++ b/ntpd/ntp.keys.5man
@@ -1,8 +1,8 @@
-.TH ntp.keys 5man "19 Dec 2014" "4.2.8" "File Formats"
+.TH ntp.keys 5man "04 Feb 2015" "4.2.8p1" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:48:54 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:41:51 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.keys.def
.\" and the template file agman-file.tpl
.Sh NAME
@@ -158,9 +158,9 @@ the default name of the configuration file
\fCntpdc\fR(1ntpdcmdoc)\f[],
\fCsntp\fR(1sntpmdoc)\f[]
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpd/ntp.keys.5mdoc b/ntpd/ntp.keys.5mdoc
index f67c3198f2f6..8d7dacc0f1b1 100644
--- a/ntpd/ntp.keys.5mdoc
+++ b/ntpd/ntp.keys.5mdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_KEYS 5mdoc File Formats
.Os SunOS 5.10
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:12 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:10 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.keys.def
.\" and the template file agmdoc-file.tpl
.Sh NAME
@@ -145,9 +145,9 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.Xr ntpdc 1ntpdcmdoc ,
.Xr sntp 1sntpmdoc
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpd/ntp.keys.html b/ntpd/ntp.keys.html
index cbeee1961053..2329476e15ff 100644
--- a/ntpd/ntp.keys.html
+++ b/ntpd/ntp.keys.html
@@ -33,7 +33,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<p>This document describes the symmetric key file for the NTP Project's
<code>ntpd</code> program.
- <p>This document applies to version 4.2.8 of <code>ntp.keys</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntp.keys</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
diff --git a/ntpd/ntp.keys.man.in b/ntpd/ntp.keys.man.in
index 6df8dff45f00..b1ec652d989f 100644
--- a/ntpd/ntp.keys.man.in
+++ b/ntpd/ntp.keys.man.in
@@ -1,8 +1,8 @@
-.TH ntp.keys 5 "19 Dec 2014" "4.2.8" "File Formats"
+.TH ntp.keys 5 "04 Feb 2015" "4.2.8p1" "File Formats"
.\"
.\" EDIT THIS FILE WITH CAUTION (ntp.man)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:48:54 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:41:51 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.keys.def
.\" and the template file agman-file.tpl
.Sh NAME
@@ -158,9 +158,9 @@ the default name of the configuration file
\fCntpdc\fR(@NTPDC_MS@)\f[],
\fCsntp\fR(@SNTP_MS@)\f[]
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpd/ntp.keys.mdoc.in b/ntpd/ntp.keys.mdoc.in
index b2906fb96941..1f3fea54ab96 100644
--- a/ntpd/ntp.keys.mdoc.in
+++ b/ntpd/ntp.keys.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_KEYS 5 File Formats
.Os SunOS 5.10
.\" EDIT THIS FILE WITH CAUTION (ntp.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:12 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:10 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp.keys.def
.\" and the template file agmdoc-file.tpl
.Sh NAME
@@ -145,9 +145,9 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.Xr ntpdc @NTPDC_MS@ ,
.Xr sntp @SNTP_MS@
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpd/ntp_config.c b/ntpd/ntp_config.c
index 0f48983f82e5..b9f0e24e3ee1 100644
--- a/ntpd/ntp_config.c
+++ b/ntpd/ntp_config.c
@@ -128,6 +128,8 @@ typedef struct peer_resolved_ctx_tag {
#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
*/
@@ -316,6 +318,7 @@ static void config_ntpd(config_tree *);
static void config_other_modes(config_tree *);
static void config_auth(config_tree *);
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 void config_ttl(config_tree *);
@@ -355,6 +358,7 @@ static u_int32 get_logmask(const char *);
#ifndef SIM
static int getnetnum(const char *num, sockaddr_u *addr, int complain,
enum gnn_type a_type);
+
#endif
@@ -392,6 +396,7 @@ init_syntax_tree(
)
{
ZERO(*ptree);
+ ptree->mdnstries = 5;
}
@@ -502,7 +507,7 @@ dump_config_tree(
int_node *counter_set;
string_node *str_node;
- const char *s;
+ const char *s = NULL;
char *s1;
char *s2;
char timestamp[80];
@@ -1105,7 +1110,7 @@ create_attr_rangeval(
attr_val *
create_attr_sval(
int attr,
- char *s
+ const char *s
)
{
attr_val *my_val;
@@ -1114,7 +1119,7 @@ create_attr_sval(
my_val->attr = attr;
if (NULL == s) /* free() hates NULL */
s = estrdup("");
- my_val->value.s = s;
+ my_val->value.s = _UC(s);
my_val->type = T_String;
return my_val;
@@ -1329,7 +1334,7 @@ create_unpeer_node(
* We treat all valid 16-bit numbers as association IDs.
*/
pch = addr->address;
- while (*pch && isdigit(*pch))
+ while (*pch && isdigit((unsigned char)*pch))
pch++;
if (!*pch
@@ -2457,12 +2462,12 @@ config_access(
/* It would be swell if we could identify the line number */
if ((RES_KOD & flags) && !(RES_LIMITED & flags)) {
- char *kod_where = (my_node->addr)
+ const char *kod_where = (my_node->addr)
? my_node->addr->address
: (mflags & RESM_SOURCE)
? "source"
: "default";
- char *kod_warn = "KOD does nothing without LIMITED.";
+ 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);
@@ -3033,7 +3038,7 @@ config_phone(
config_tree *ptree
)
{
- int i;
+ size_t i;
string_node * sn;
i = 0;
@@ -3045,13 +3050,23 @@ config_phone(
sys_phone[i] = NULL;
} else {
msyslog(LOG_INFO,
- "phone: Number of phone entries exceeds %lu. Ignoring phone %s...",
- (u_long)(COUNTOF(sys_phone) - 1), sn->s);
+ "phone: Number of phone entries exceeds %zu. Ignoring phone %s...",
+ (COUNTOF(sys_phone) - 1), sn->s);
}
}
}
#endif /* !SIM */
+static void
+config_mdnstries(
+ config_tree *ptree
+ )
+{
+#ifdef HAVE_DNSREGISTRATION
+ extern int mdnstries;
+ mdnstries = ptree->mdnstries;
+#endif /* HAVE_DNSREGISTRATION */
+}
#ifdef FREE_CFG_T
static void
@@ -3110,7 +3125,7 @@ config_ttl(
config_tree *ptree
)
{
- int i = 0;
+ size_t i = 0;
int_node *curr_ttl;
curr_ttl = HEAD_PFIFO(ptree->ttl);
@@ -3119,8 +3134,8 @@ config_ttl(
sys_ttl[i++] = (u_char)curr_ttl->i;
else
msyslog(LOG_INFO,
- "ttl: Number of TTL entries exceeds %lu. Ignoring TTL %d...",
- (u_long)COUNTOF(sys_ttl), curr_ttl->i);
+ "ttl: Number of TTL entries exceeds %zu. Ignoring TTL %d...",
+ COUNTOF(sys_ttl), curr_ttl->i);
}
sys_ttlmax = i - 1;
}
@@ -4286,6 +4301,7 @@ config_ntpd(
config_system_opts(ptree);
config_logconfig(ptree);
config_phone(ptree);
+ config_mdnstries(ptree);
config_setvar(ptree);
config_ttl(ptree);
config_trap(ptree);
@@ -4427,7 +4443,7 @@ getconfig(
&& check_netinfo && !(config_netinfo = get_netinfo_config())
#endif /* HAVE_NETINFO */
) {
- msyslog(LOG_INFO, "getconfig: Couldn't open <%s>", FindConfig(config_file));
+ msyslog(LOG_INFO, "getconfig: Couldn't open <%s>: %m", FindConfig(config_file));
#ifndef SYS_WINNT
io_open_sockets();
@@ -4441,7 +4457,7 @@ getconfig(
* Broadcast clients can sometimes run without
* a configuration file.
*/
- msyslog(LOG_INFO, "getconfig: Couldn't open <%s>", FindConfig(alt_config_file));
+ msyslog(LOG_INFO, "getconfig: Couldn't open <%s>: %m", FindConfig(alt_config_file));
io_open_sockets();
return;
@@ -4886,7 +4902,7 @@ ntp_rlimit(
int rl_what,
rlim_t rl_value,
int rl_scale,
- char * rl_sstr
+ const char * rl_sstr
)
{
struct rlimit rl;
diff --git a/ntpd/ntp_control.c b/ntpd/ntp_control.c
index f5f326ca4811..b339e7d83b86 100644
--- a/ntpd/ntp_control.c
+++ b/ntpd/ntp_control.c
@@ -58,13 +58,10 @@ static u_short ctlclkstatus (struct refclockstat *);
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 *, const char *, double);
-const char ctl_def_dbl_fmt[] = "%.3f";
-#define ctl_putdbl(tag, d) ctl_putdblf(tag, ctl_def_dbl_fmt, d)
-const char ctl_def_dbl6_fmt[] = "%.6f";
-#define ctl_putdbl6(tag, d) ctl_putdblf(tag, ctl_def_dbl6_fmt, d)
-const char ctl_def_sfp_fmt[] = "%g";
-#define ctl_putsfp(tag, sfp) ctl_putdblf(tag, ctl_def_sfp_fmt, \
+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);
@@ -783,6 +780,7 @@ 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;
@@ -811,7 +809,7 @@ static char *reqend;
void
init_control(void)
{
- int i;
+ size_t i;
#ifdef HAVE_UNAME
uname(&utsnamebuf);
@@ -846,9 +844,9 @@ ctl_error(
* Fill in the fields. We assume rpkt.sequence and rpkt.associd
* have already been filled in.
*/
- rpkt.r_m_e_op = CTL_RESPONSE | CTL_ERROR |
+ rpkt.r_m_e_op = (u_char)CTL_RESPONSE | CTL_ERROR |
(res_opcode & CTL_OP_MASK);
- rpkt.status = htons((errcode << 8) & 0xff00);
+ rpkt.status = htons((u_short)(errcode << 8) & 0xff00);
rpkt.count = 0;
/*
@@ -923,6 +921,7 @@ save_config(
* 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.
*/
if (0 == strftime(filename, sizeof(filename), filespec,
localtime(&now)))
@@ -1007,7 +1006,7 @@ process_control(
const struct ctl_proc *cc;
keyid_t *pkid;
int properlen;
- int maclen;
+ size_t maclen;
DPRINTF(3, ("in process_control()\n"));
@@ -1023,11 +1022,11 @@ process_control(
* If the length is less than required for the header, or
* it is a response or a fragment, ignore this.
*/
- if (rbufp->recv_length < CTL_HEADER_LEN
+ if (rbufp->recv_length < (int)CTL_HEADER_LEN
|| (CTL_RESPONSE | CTL_MORE | CTL_ERROR) & pkt->r_m_e_op
|| pkt->offset != 0) {
DPRINTF(1, ("invalid format in control packet\n"));
- if (rbufp->recv_length < CTL_HEADER_LEN)
+ if (rbufp->recv_length < (int)CTL_HEADER_LEN)
numctltooshort++;
if (CTL_RESPONSE & pkt->r_m_e_op)
numctlinputresp++;
@@ -1067,6 +1066,7 @@ process_control(
req_count = (int)ntohs(pkt->count);
datanotbinflag = FALSE;
datalinelen = 0;
+ datasent = 0;
datapt = rpkt.u.data;
dataend = &rpkt.u.data[CTL_MAX_DATA_LEN];
@@ -1096,7 +1096,7 @@ process_control(
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=%d\n",
+ DPRINTF(3, ("recv_len %d, properlen %d, wants auth with keyid %08x, MAC length=%zu\n",
rbufp->recv_length, properlen, res_keyid,
maclen));
@@ -1220,7 +1220,7 @@ ctl_flushpkt(
u_char more
)
{
- int i;
+ size_t i;
int dlen;
int sendlen;
int maclen;
@@ -1326,7 +1326,7 @@ ctl_putdata(
if (!bin) {
datanotbinflag = TRUE;
overhead = 3;
- if (datapt != rpkt.u.data) {
+ if (datasent) {
*datapt++ = ',';
datalinelen++;
if ((dlen + datalinelen + 1) >= MAXDATALINELEN) {
@@ -1347,7 +1347,7 @@ ctl_putdata(
/*
* Not enough room in this one, flush it out.
*/
- currentlen = MIN(dlen, dataend - datapt);
+ currentlen = MIN(dlen, (unsigned int)(dataend - datapt));
memcpy(datapt, dp, currentlen);
@@ -1362,6 +1362,7 @@ ctl_putdata(
memcpy(datapt, dp, dlen);
datapt += dlen;
datalinelen += dlen;
+ datasent = TRUE;
}
@@ -1439,7 +1440,8 @@ ctl_putunqstr(
static void
ctl_putdblf(
const char * tag,
- const char * fmt,
+ int use_f,
+ int precision,
double d
)
{
@@ -1452,8 +1454,9 @@ ctl_putdblf(
while (*cq != '\0')
*cp++ = *cq++;
*cp++ = '=';
- NTP_INSIST((cp - buffer) < sizeof(buffer));
- snprintf(cp, sizeof(buffer) - (cp - buffer), fmt, d);
+ NTP_INSIST((size_t)(cp - buffer) < sizeof(buffer));
+ snprintf(cp, sizeof(buffer) - (cp - buffer), use_f ? "%.*f" : "%.*g",
+ precision, d);
cp += strlen(cp);
ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
}
@@ -1477,13 +1480,40 @@ ctl_putuint(
*cp++ = *cq++;
*cp++ = '=';
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((cp - buffer) < (int)sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer), "%lu", uval);
cp += strlen(cp);
ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
}
/*
+ * ctl_putcal - write a decoded calendar data into the response
+ */
+static void
+ctl_putcal(
+ const char *tag,
+ const struct calendar *pcal
+ )
+{
+ char buffer[100];
+ unsigned numch;
+
+ numch = snprintf(buffer, sizeof(buffer),
+ "%s=%04d%02d%02d%02d%02d",
+ tag,
+ pcal->year,
+ pcal->month,
+ pcal->monthday,
+ pcal->hour,
+ pcal->minute
+ );
+ NTP_INSIST(numch < sizeof(buffer));
+ ctl_putdata(buffer, numch, 0);
+
+ return;
+}
+
+/*
* ctl_putfs - write a decoded filestamp into the response
*/
static void
@@ -1508,7 +1538,7 @@ ctl_putfs(
tm = gmtime(&fstamp);
if (NULL == tm)
return;
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((cp - buffer) < (int)sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer),
"%04d%02d%02d%02d%02d", tm->tm_year + 1900,
tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min);
@@ -1537,7 +1567,7 @@ ctl_puthex(
*cp++ = *cq++;
*cp++ = '=';
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((cp - buffer) < (int)sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer), "0x%lx", uval);
cp += strlen(cp);
ctl_putdata(buffer,(unsigned)( cp - buffer ), 0);
@@ -1563,7 +1593,7 @@ ctl_putint(
*cp++ = *cq++;
*cp++ = '=';
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((cp - buffer) < (int)sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer), "%ld", ival);
cp += strlen(cp);
ctl_putdata(buffer, (unsigned)( cp - buffer ), 0);
@@ -1589,7 +1619,7 @@ ctl_putts(
*cp++ = *cq++;
*cp++ = '=';
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((size_t)(cp - buffer) < sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer), "0x%08x.%08x",
(u_int)ts->l_ui, (u_int)ts->l_uf);
cp += strlen(cp);
@@ -1621,7 +1651,7 @@ ctl_putadr(
cq = numtoa(addr32);
else
cq = stoa(addr);
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((cp - buffer) < (int)sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer), "%s", cq);
cp += strlen(cp);
ctl_putdata(buffer, (unsigned)(cp - buffer), 0);
@@ -1658,7 +1688,7 @@ ctl_putrefid(
iplim = iptr + sizeof(refid);
for ( ; optr < oplim && iptr < iplim && '\0' != *iptr;
iptr++, optr++)
- if (isprint(*iptr))
+ if (isprint((int)*iptr))
*optr = *iptr;
else
*optr = '.';
@@ -1692,7 +1722,7 @@ ctl_putarray(
if (i == 0)
i = NTP_SHIFT;
i--;
- NTP_INSIST((cp - buffer) < sizeof(buffer));
+ NTP_INSIST((cp - buffer) < (int)sizeof(buffer));
snprintf(cp, sizeof(buffer) - (cp - buffer),
" %.2f", arr[i] * 1e3);
cp += strlen(cp);
@@ -1715,9 +1745,6 @@ ctl_putsys(
double kb;
double dtemp;
const char *ss;
- size_t len;
- int firstvarname;
- const struct ctl_var *k;
#ifdef AUTOKEY
struct cert_info *cp;
#endif /* AUTOKEY */
@@ -1863,11 +1890,11 @@ ctl_putsys(
{
char buf[CTL_MAX_DATA_LEN];
//buffPointer, firstElementPointer, buffEndPointer
- register char *buffp, *buffend;
- register int firstVarName;
- register const char *ss;
- register int len;
- register struct ctl_var *k;
+ char *buffp, *buffend;
+ int firstVarName;
+ const char *ss1;
+ int len;
+ const struct ctl_var *k;
buffp = buf;
buffend = buf + sizeof(buf);
@@ -1896,11 +1923,11 @@ ctl_putsys(
continue;
if (NULL == k->text)
continue;
- ss = strchr(k->text, '=');
- if (NULL == ss)
+ ss1 = strchr(k->text, '=');
+ if (NULL == ss1)
len = strlen(k->text);
else
- len = ss - k->text;
+ len = ss1 - k->text;
if (buffp + len + 1 >= buffend)
break;
if (firstVarName) {
@@ -2113,7 +2140,7 @@ ctl_putsys(
case CS_K_OFFSET:
CTL_IF_KERNLOOP(
ctl_putdblf,
- (sys_var[varid].text, "%g", to_ms * ntx.offset)
+ (sys_var[varid].text, 0, -1, to_ms * ntx.offset)
);
break;
@@ -2127,7 +2154,7 @@ ctl_putsys(
case CS_K_MAXERR:
CTL_IF_KERNLOOP(
ctl_putdblf,
- (sys_var[varid].text, "%.6g",
+ (sys_var[varid].text, 0, 6,
to_ms * ntx.maxerror)
);
break;
@@ -2135,7 +2162,7 @@ ctl_putsys(
case CS_K_ESTERR:
CTL_IF_KERNLOOP(
ctl_putdblf,
- (sys_var[varid].text, "%.6g",
+ (sys_var[varid].text, 0, 6,
to_ms * ntx.esterror)
);
break;
@@ -2159,7 +2186,7 @@ ctl_putsys(
case CS_K_PRECISION:
CTL_IF_KERNLOOP(
ctl_putdblf,
- (sys_var[varid].text, "%.6g",
+ (sys_var[varid].text, 0, 6,
to_ms * ntx.precision)
);
break;
@@ -2334,14 +2361,11 @@ ctl_putsys(
case CS_CERTIF:
for (cp = cinfo; cp != NULL; cp = cp->link) {
- tstamp_t tstamp;
-
snprintf(str, sizeof(str), "%s %s 0x%x",
cp->subject, cp->issuer, cp->flags);
ctl_putstr(sys_var[CS_CERTIF].text, str,
strlen(str));
- tstamp = caltontp(&(cp->last)); /* XXX too small to hold some values, but that's what ctl_putfs requires */
- ctl_putfs(sys_var[CS_REVTIME].text, tstamp);
+ ctl_putcal(sys_var[CS_REVTIME].text, &(cp->last));
}
break;
@@ -2902,7 +2926,7 @@ ctl_getitem(
cp++;
while (cp < reqend && *cp != ',') {
*tp++ = *cp++;
- if (tp - buf >= sizeof(buf)) {
+ if ((size_t)(tp - buf) >= sizeof(buf)) {
ctl_error(CERR_BADFMT);
numctlbadpkts++;
NLOG(NLOG_SYSEVENT)
@@ -2974,7 +2998,7 @@ read_status(
{
struct peer *peer;
const u_char *cp;
- int n;
+ size_t n;
/* a_st holds association ID, status pairs alternating */
u_short a_st[CTL_MAX_DATA_LEN / sizeof(u_short)];
@@ -3032,7 +3056,7 @@ read_peervars(void)
const struct ctl_var *v;
struct peer *peer;
const u_char *cp;
- int i;
+ size_t i;
char * valuep;
u_char wants[CP_MAXCODE + 1];
u_int gotvar;
@@ -3708,7 +3732,7 @@ static void read_mru_list(
const char * pch;
char * pnonce;
int nonce_valid;
- int i;
+ size_t i;
int priors;
u_short hash;
mon_entry * mon;
@@ -3737,9 +3761,9 @@ static void read_mru_list(
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, i);
+ snprintf(buf, sizeof(buf), last_fmt, (int)i);
set_var(&in_parms, buf, strlen(buf) + 1, 0);
- snprintf(buf, sizeof(buf), addr_fmt, i);
+ snprintf(buf, sizeof(buf), addr_fmt, (int)i);
set_var(&in_parms, buf, strlen(buf) + 1, 0);
}
@@ -3758,6 +3782,7 @@ static void read_mru_list(
while (NULL != (v = ctl_getitem(in_parms, &val)) &&
!(EOV & v->flags)) {
+ int si;
if (!strcmp(nonce_text, v->text)) {
if (NULL != pnonce)
@@ -3780,20 +3805,20 @@ static void read_mru_list(
} else if (!strcmp(laddr_text, v->text)) {
if (decodenetnum(val, &laddr))
lcladr = getinterface(&laddr, 0);
- } else if (1 == sscanf(v->text, last_fmt, &i) &&
- i < COUNTOF(last)) {
+ } else if (1 == sscanf(v->text, last_fmt, &si) &&
+ (size_t)si < COUNTOF(last)) {
if (2 == sscanf(val, "0x%08x.%08x", &ui, &uf)) {
- last[i].l_ui = ui;
- last[i].l_uf = uf;
- if (!SOCK_UNSPEC(&addr[i]) &&
- i == priors)
+ 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, &i) &&
- i < COUNTOF(addr)) {
- if (decodenetnum(val, &addr[i])
- && last[i].l_ui && last[i].l_uf &&
- i == priors)
+ } else if (1 == sscanf(v->text, addr_fmt, &si) &&
+ (size_t)si < COUNTOF(addr)) {
+ if (decodenetnum(val, &addr[si])
+ && last[si].l_ui && last[si].l_uf &&
+ si == priors)
priors++;
}
}
@@ -3827,7 +3852,7 @@ static void read_mru_list(
* Find the starting point if one was provided.
*/
mon = NULL;
- for (i = 0; i < priors; i++) {
+ for (i = 0; i < (size_t)priors; i++) {
hash = MON_HASH(&addr[i]);
for (mon = mon_hash[hash];
mon != NULL;
@@ -4902,7 +4927,7 @@ set_var(
t++;
}
if (*s == *t && ((*t == '=') || !*t)) {
- td = erealloc(k->text, size);
+ td = erealloc((void *)(intptr_t)k->text, size);
memcpy(td, data, size);
k->text = td;
k->flags = def;
@@ -4965,7 +4990,7 @@ free_varlist(
struct ctl_var *k;
if (kv) {
for (k = kv; !(k->flags & EOV); k++)
- free((void *)k->text);
+ free((void *)(intptr_t)k->text);
free((void *)kv);
}
}
diff --git a/ntpd/ntp_crypto.c b/ntpd/ntp_crypto.c
index 0dc5e3269dad..089dc6f2887d 100644
--- a/ntpd/ntp_crypto.c
+++ b/ntpd/ntp_crypto.c
@@ -139,6 +139,7 @@ static int calcomp(struct calendar *pjd1, struct calendar *pjd2)
#define TAI_1972 10 /* initial TAI offset (s) */
#define MAX_LEAP 100 /* max UTC leapseconds (s) */
#define VALUE_LEN (6 * 4) /* min response field length */
+#define MAX_VALLEN (65535 - VALUE_LEN)
#define YEAR (60 * 60 * 24 * 365) /* seconds in year */
/*
@@ -179,8 +180,8 @@ static char *rand_file = NULL; /* random seed file */
*/
static int crypto_verify (struct exten *, struct value *,
struct peer *);
-static int crypto_encrypt (struct exten *, struct value *,
- keyid_t *);
+static int crypto_encrypt (const u_char *, u_int, keyid_t *,
+ struct value *);
static int crypto_alice (struct peer *, struct value *);
static int crypto_alice2 (struct peer *, struct value *);
static int crypto_alice3 (struct peer *, struct value *);
@@ -423,7 +424,6 @@ crypto_recv(
int has_mac; /* length of MAC field */
int authlen; /* offset of MAC field */
associd_t associd; /* association ID */
- tstamp_t tstamp = 0; /* timestamp */
tstamp_t fstamp = 0; /* filestamp */
u_int len; /* extension field length */
u_int code; /* extension field opcode */
@@ -448,7 +448,7 @@ crypto_recv(
*/
authlen = LEN_PKT_NOMAC;
hismode = (int)PKT_MODE((&rbufp->recv_pkt)->li_vn_mode);
- while ((has_mac = rbufp->recv_length - authlen) > MAX_MAC_LEN) {
+ while ((has_mac = rbufp->recv_length - authlen) > (int)MAX_MAC_LEN) {
pkt = (u_int32 *)&rbufp->recv_pkt + authlen / 4;
ep = (struct exten *)pkt;
code = ntohl(ep->opcode) & 0xffff0000;
@@ -474,9 +474,14 @@ crypto_recv(
}
if (len >= VALUE_LEN) {
- tstamp = ntohl(ep->tstamp);
fstamp = ntohl(ep->fstamp);
vallen = ntohl(ep->vallen);
+ /*
+ * Bug 2761: I hope this isn't too early...
+ */
+ if ( vallen == 0
+ || len - VALUE_LEN < vallen)
+ return XEVNT_LEN;
}
switch (code) {
@@ -527,8 +532,9 @@ crypto_recv(
rval = XEVNT_ERR;
break;
}
+ INSIST(len >= VALUE_LEN);
if (vallen == 0 || vallen > MAXHOSTNAME ||
- len < VALUE_LEN + vallen) {
+ len - VALUE_LEN < vallen) {
rval = XEVNT_LEN;
break;
}
@@ -1195,8 +1201,9 @@ crypto_xmit(
* choice.
*/
case CRYPTO_CERT | CRYPTO_RESP:
- vallen = ntohl(ep->vallen);
- if (vallen == 0 || vallen > MAXHOSTNAME) {
+ vallen = ntohl(ep->vallen); /* Must be <64k */
+ if (vallen == 0 || vallen > MAXHOSTNAME ||
+ len - VALUE_LEN < vallen) {
rval = XEVNT_LEN;
break;
}
@@ -1346,7 +1353,10 @@ crypto_xmit(
* anything goes wrong.
*/
case CRYPTO_COOK | CRYPTO_RESP:
- if ((opcode & 0xffff) < VALUE_LEN) {
+ vallen = ntohl(ep->vallen); /* Must be <64k */
+ if ( vallen == 0
+ || (vallen >= MAX_VALLEN)
+ || (opcode & 0x0000ffff) < VALUE_LEN + vallen) {
rval = XEVNT_LEN;
break;
}
@@ -1354,8 +1364,8 @@ crypto_xmit(
tcookie = cookie;
else
tcookie = peer->hcookie;
- if ((rval = crypto_encrypt(ep, &vtemp, &tcookie)) ==
- XEVNT_OK) {
+ if ((rval = crypto_encrypt((const u_char *)ep->pkt, vallen, &tcookie, &vtemp))
+ == XEVNT_OK) {
len = crypto_send(fp, &vtemp, start);
value_free(&vtemp);
}
@@ -1495,13 +1505,16 @@ crypto_verify(
* up to the next word (4 octets).
*/
vallen = ntohl(ep->vallen);
- if (vallen == 0)
+ if ( vallen == 0
+ || vallen > MAX_VALLEN)
return (XEVNT_LEN);
i = (vallen + 3) / 4;
siglen = ntohl(ep->pkt[i++]);
- if (len < VALUE_LEN + ((vallen + 3) / 4) * 4 + ((siglen + 3) /
- 4) * 4)
+ if ( siglen > MAX_VALLEN
+ || len - VALUE_LEN < ((vallen + 3) / 4) * 4
+ || len - VALUE_LEN - ((vallen + 3) / 4) * 4
+ < ((siglen + 3) / 4) * 4)
return (XEVNT_LEN);
/*
@@ -1559,6 +1572,7 @@ crypto_verify(
* proventic bit. What a relief.
*/
EVP_VerifyInit(&ctx, peer->digest);
+ /* XXX: the "+ 12" needs to be at least documented... */
EVP_VerifyUpdate(&ctx, (u_char *)&ep->tstamp, vallen + 12);
if (EVP_VerifyFinal(&ctx, (u_char *)&ep->pkt[i], siglen,
pkey) <= 0)
@@ -1571,35 +1585,32 @@ crypto_verify(
/*
- * crypto_encrypt - construct encrypted cookie and signature from
- * extension field and cookie
+ * crypto_encrypt - construct vp (encrypted cookie and signature) from
+ * the public key and cookie.
*
- * Returns
+ * Returns:
* XEVNT_OK success
* XEVNT_CKY bad or missing cookie
* XEVNT_PUB bad or missing public key
*/
static int
crypto_encrypt(
- struct exten *ep, /* extension pointer */
- struct value *vp, /* value pointer */
- keyid_t *cookie /* server cookie */
+ const u_char *ptr, /* Public Key */
+ u_int vallen, /* Length of Public Key */
+ keyid_t *cookie, /* server cookie */
+ struct value *vp /* value pointer */
)
{
EVP_PKEY *pkey; /* public key */
EVP_MD_CTX ctx; /* signature context */
tstamp_t tstamp; /* NTP timestamp */
u_int32 temp32;
- u_int len;
- const u_char *ptr;
u_char *puch;
/*
* Extract the public key from the request.
*/
- len = ntohl(ep->vallen);
- ptr = (void *)ep->pkt;
- pkey = d2i_PublicKey(EVP_PKEY_RSA, NULL, &ptr, len);
+ pkey = d2i_PublicKey(EVP_PKEY_RSA, NULL, &ptr, vallen);
if (pkey == NULL) {
msyslog(LOG_ERR, "crypto_encrypt: %s",
ERR_error_string(ERR_get_error(), NULL));
@@ -1613,9 +1624,9 @@ crypto_encrypt(
tstamp = crypto_time();
vp->tstamp = htonl(tstamp);
vp->fstamp = hostval.tstamp;
- len = EVP_PKEY_size(pkey);
- vp->vallen = htonl(len);
- vp->ptr = emalloc(len);
+ vallen = EVP_PKEY_size(pkey);
+ vp->vallen = htonl(vallen);
+ vp->ptr = emalloc(vallen);
puch = vp->ptr;
temp32 = htonl(*cookie);
if (RSA_public_encrypt(4, (u_char *)&temp32, puch,
@@ -1633,8 +1644,8 @@ crypto_encrypt(
vp->sig = emalloc(sign_siglen);
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
- EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ EVP_SignUpdate(&ctx, vp->ptr, vallen);
+ if (EVP_SignFinal(&ctx, vp->sig, &vallen, sign_pkey))
vp->siglen = htonl(sign_siglen);
return (XEVNT_OK);
}
@@ -1705,6 +1716,9 @@ crypto_ident(
* call in the protocol module.
*
* Returns extension field pointer (no errors)
+ *
+ * XXX: opcode and len should really be 32-bit quantities and
+ * we should make sure that str is not too big.
*/
struct exten *
crypto_args(
@@ -1717,23 +1731,30 @@ crypto_args(
tstamp_t tstamp; /* NTP timestamp */
struct exten *ep; /* extension field pointer */
u_int len; /* extension field length */
+ size_t slen;
tstamp = crypto_time();
len = sizeof(struct exten);
- if (str != NULL)
- len += strlen(str);
+ if (str != NULL) {
+ slen = strlen(str);
+ INSIST(slen < MAX_VALLEN);
+ len += slen;
+ }
ep = emalloc_zero(len);
if (opcode == 0)
return (ep);
+ REQUIRE(0 == (len & ~0x0000ffff));
+ REQUIRE(0 == (opcode & ~0xffff0000));
+
ep->opcode = htonl(opcode + len);
ep->associd = htonl(associd);
ep->tstamp = htonl(tstamp);
ep->fstamp = hostval.tstamp;
ep->vallen = 0;
if (str != NULL) {
- ep->vallen = htonl(strlen(str));
- memcpy((char *)ep->pkt, str, strlen(str));
+ ep->vallen = htonl(slen);
+ memcpy((char *)ep->pkt, str, slen);
}
return (ep);
}
@@ -1746,6 +1767,8 @@ crypto_args(
* Note: it is not polite to send a nonempty signature with zero
* timestamp or a nonzero timestamp with an empty signature, but those
* rules are not enforced here.
+ *
+ * XXX This code won't work on a box with 16-bit ints.
*/
int
crypto_send(
@@ -1755,14 +1778,15 @@ crypto_send(
)
{
u_int len, vallen, siglen, opcode;
- int i, j;
+ u_int i, j;
/*
* Calculate extension field length and check for buffer
* overflow. Leave room for the MAC.
*/
- len = 16;
+ len = 16; /* XXX Document! */
vallen = ntohl(vp->vallen);
+ INSIST(vallen <= MAX_VALLEN);
len += ((vallen + 3) / 4 + 1) * 4;
siglen = ntohl(vp->siglen);
len += ((siglen + 3) / 4 + 1) * 4;
@@ -1783,7 +1807,7 @@ crypto_send(
i = 0;
if (vallen > 0 && vp->ptr != NULL) {
j = vallen / 4;
- if (j * 4 < (int)vallen)
+ if (j * 4 < vallen)
ep->pkt[i + j++] = 0;
memcpy(&ep->pkt[i], vp->ptr, vallen);
i += j;
@@ -1796,13 +1820,14 @@ crypto_send(
ep->pkt[i++] = vp->siglen;
if (siglen > 0 && vp->sig != NULL) {
j = siglen / 4;
- if (j * 4 < (int)siglen)
+ if (j * 4 < siglen)
ep->pkt[i + j++] = 0;
memcpy(&ep->pkt[i], vp->sig, siglen);
i += j;
}
opcode = ntohl(ep->opcode);
ep->opcode = htonl((opcode & 0xffff0000) | len);
+ ENSURE(len <= MAX_VALLEN);
return (len);
}
@@ -1839,7 +1864,6 @@ crypto_update(void)
if (hostval.tstamp == 0)
return;
-
/*
* Sign public key and timestamps. The filestamp is derived from
* the host key file extension from wherever the file was
@@ -1956,7 +1980,7 @@ asn_to_calendar (
struct calendar *pjd /* pointer to result */
)
{
- int len; /* length of ASN1_TIME string */
+ size_t len; /* length of ASN1_TIME string */
char v[24]; /* writable copy of ASN1_TIME string */
unsigned long temp; /* result from strtoul */
@@ -2167,7 +2191,8 @@ crypto_bob(
tstamp_t tstamp; /* NTP timestamp */
BIGNUM *bn, *bk, *r;
u_char *ptr;
- u_int len;
+ u_int len; /* extension field length */
+ u_int vallen = 0; /* value length */
/*
* If the IFF parameters are not valid, something awful
@@ -2182,8 +2207,11 @@ crypto_bob(
/*
* Extract r from the challenge.
*/
- len = ntohl(ep->vallen);
- if ((r = BN_bin2bn((u_char *)ep->pkt, len, NULL)) == NULL) {
+ vallen = ntohl(ep->vallen);
+ len = ntohl(ep->opcode) & 0x0000ffff;
+ if (vallen == 0 || len < VALUE_LEN || len - VALUE_LEN < vallen)
+ return XEVNT_LEN;
+ if ((r = BN_bin2bn((u_char *)ep->pkt, vallen, NULL)) == NULL) {
msyslog(LOG_ERR, "crypto_bob: %s",
ERR_error_string(ERR_get_error(), NULL));
return (XEVNT_ERR);
@@ -2195,7 +2223,7 @@ crypto_bob(
*/
bctx = BN_CTX_new(); bk = BN_new(); bn = BN_new();
sdsa = DSA_SIG_new();
- BN_rand(bk, len * 8, -1, 1); /* k */
+ BN_rand(bk, vallen * 8, -1, 1); /* k */
BN_mod_mul(bn, dsa->priv_key, r, dsa->q, bctx); /* b r mod q */
BN_add(bn, bn, bk);
BN_mod(bn, bn, dsa->q, bctx); /* k + b r mod q */
@@ -2214,30 +2242,37 @@ crypto_bob(
* Encode the values in ASN.1 and sign. The filestamp is from
* the local file.
*/
- len = i2d_DSA_SIG(sdsa, NULL);
- if (len == 0) {
+ vallen = i2d_DSA_SIG(sdsa, NULL);
+ if (vallen == 0) {
msyslog(LOG_ERR, "crypto_bob: %s",
ERR_error_string(ERR_get_error(), NULL));
DSA_SIG_free(sdsa);
return (XEVNT_ERR);
}
+ if (vallen > MAX_VALLEN) {
+ msyslog(LOG_ERR, "crypto_bob: signature is too big: %d",
+ vallen);
+ DSA_SIG_free(sdsa);
+ return (XEVNT_LEN);
+ }
memset(vp, 0, sizeof(struct value));
tstamp = crypto_time();
vp->tstamp = htonl(tstamp);
vp->fstamp = htonl(iffkey_info->fstamp);
- vp->vallen = htonl(len);
- ptr = emalloc(len);
+ vp->vallen = htonl(vallen);
+ ptr = emalloc(vallen);
vp->ptr = ptr;
i2d_DSA_SIG(sdsa, &ptr);
DSA_SIG_free(sdsa);
if (tstamp == 0)
return (XEVNT_OK);
+ /* XXX: more validation to make sure the sign fits... */
vp->sig = emalloc(sign_siglen);
EVP_SignInit(&ctx, sign_digest);
EVP_SignUpdate(&ctx, (u_char *)&vp->tstamp, 12);
- EVP_SignUpdate(&ctx, vp->ptr, len);
- if (EVP_SignFinal(&ctx, vp->sig, &len, sign_pkey))
+ EVP_SignUpdate(&ctx, vp->ptr, vallen);
+ if (EVP_SignFinal(&ctx, vp->sig, &vallen, sign_pkey))
vp->siglen = htonl(sign_siglen);
return (XEVNT_OK);
}
@@ -3058,7 +3093,7 @@ cert_sign(
X509_gmtime_adj(X509_get_notAfter(cert), YEAR);
subj = X509_get_issuer_name(cert);
X509_NAME_add_entry_by_txt(subj, "commonName", MBSTRING_ASC,
- hostval.ptr, strlen(hostval.ptr), -1, 0);
+ hostval.ptr, strlen((const char *)hostval.ptr), -1, 0);
subj = X509_get_subject_name(req);
X509_set_subject_name(cert, subj);
X509_set_pubkey(cert, pkey);
@@ -3099,7 +3134,7 @@ cert_sign(
vp->vallen = htonl(len);
vp->ptr = emalloc(len);
ptr = vp->ptr;
- i2d_X509(cert, &ptr);
+ i2d_X509(cert, (unsigned char **)(intptr_t)&ptr);
vp->siglen = 0;
if (tstamp != 0) {
vp->sig = emalloc(sign_siglen);
@@ -3431,7 +3466,7 @@ cert_parse(
/*
* Check for a certificate loop.
*/
- if (strcmp(hostval.ptr, ret->issuer) == 0) {
+ if (strcmp((const char *)hostval.ptr, ret->issuer) == 0) {
msyslog(LOG_NOTICE,
"cert_parse: certificate trail loop %s",
ret->subject);
diff --git a/ntpd/ntp_filegen.c b/ntpd/ntp_filegen.c
index a1703a9d13a3..4ee90955c1be 100644
--- a/ntpd/ntp_filegen.c
+++ b/ntpd/ntp_filegen.c
@@ -617,7 +617,7 @@ filegen_statsdir(void)
#ifdef DEBUG
void
filegen_unregister(
- char *name
+ const char *name
)
{
struct filegen_entry ** ppfe;
diff --git a/ntpd/ntp_io.c b/ntpd/ntp_io.c
index f8c6ee0ba92e..1ee7098ae164 100644
--- a/ntpd/ntp_io.c
+++ b/ntpd/ntp_io.c
@@ -217,7 +217,7 @@ static isc_boolean_t socket_multicast_disable(endpt *, sockaddr_u *);
#ifdef DEBUG
static void interface_dump (const endpt *);
static void sockaddr_dump (const sockaddr_u *);
-static void print_interface (const endpt *, char *, char *);
+static void print_interface (const endpt *, const char *, const char *);
#define DPRINT_INTERFACE(level, args) do { if (debug >= (level)) { print_interface args; } } while (0)
#else
#define DPRINT_INTERFACE(level, args) do {} while (0)
@@ -550,7 +550,7 @@ sockaddr_dump(const sockaddr_u *psau)
* print_interface - helper to output debug information
*/
static void
-print_interface(const endpt *iface, char *pfx, char *sfx)
+print_interface(const endpt *iface, const char *pfx, const char *sfx)
{
printf("%sinterface #%d: fd=%d, bfd=%d, name=%s, flags=0x%x, ifindex=%u, sin=%s",
pfx,
@@ -1647,16 +1647,15 @@ set_wildcard_reuse(
static isc_boolean_t
-is_anycast(
+check_flags6(
sockaddr_u *psau,
- const char *name
+ const char *name,
+ u_int32 flags6
)
{
-#if defined(INCLUDE_IPV6_SUPPORT) && defined(SIOCGIFAFLAG_IN6) && \
- defined(IN6_IFF_ANYCAST)
+#if defined(INCLUDE_IPV6_SUPPORT) && defined(SIOCGIFAFLAG_IN6)
struct in6_ifreq ifr6;
int fd;
- u_int32 flags6;
if (psau->sa.sa_family != AF_INET6)
return ISC_FALSE;
@@ -1670,13 +1669,45 @@ is_anycast(
return ISC_FALSE;
}
close(fd);
- flags6 = ifr6.ifr_ifru.ifru_flags6;
- if ((flags6 & IN6_IFF_ANYCAST) != 0)
+ if ((ifr6.ifr_ifru.ifru_flags6 & flags6) != 0)
return ISC_TRUE;
-#endif /* INCLUDE_IPV6_SUPPORT && SIOCGIFAFLAG_IN6 && IN6_IFF_ANYCAST */
+#endif /* INCLUDE_IPV6_SUPPORT && SIOCGIFAFLAG_IN6 */
return ISC_FALSE;
}
+static isc_boolean_t
+is_anycast(
+ sockaddr_u *psau,
+ const char *name
+ )
+{
+#ifdef IN6_IFF_ANYCAST
+ return check_flags6(psau, name, IN6_IFF_ANYCAST);
+#else
+ return ISC_FALSE;
+#endif
+}
+
+static isc_boolean_t
+is_valid(
+ sockaddr_u *psau,
+ const char *name
+ )
+{
+ u_int32 flags6;
+
+ flags6 = 0;
+#ifdef IN6_IFF_DEPARTED
+ flags6 |= IN6_IFF_DEPARTED;
+#endif
+#ifdef IN6_IFF_DETACHED
+ flags6 |= IN6_IFF_DETACHED;
+#endif
+#ifdef IN6_IFF_TENTATIVE
+ flags6 |= IN6_IFF_TENTATIVE;
+#endif
+ return check_flags6(psau, name, flags6) ? ISC_FALSE : ISC_TRUE;
+}
/*
* update_interface strategy
@@ -1810,6 +1841,12 @@ update_interfaces(
continue;
/*
+ * skip any address that is an invalid state to be used
+ */
+ if (!is_valid(&enumep.sin, isc_if.name))
+ continue;
+
+ /*
* map to local *address* in order to map all duplicate
* interfaces to an endpt structure with the appropriate
* socket. Our name space is (ip-address), NOT
@@ -1969,6 +2006,9 @@ update_interfaces(
if (broadcast_client_enabled)
io_setbclient();
+ if (sys_bclient)
+ io_setbclient();
+
return new_interface_found;
}
@@ -2314,7 +2354,7 @@ enable_multicast_if(
#ifdef IP_MULTICAST_LOOP
TYPEOF_IP_MULTICAST_LOOP off = 0;
#endif
-#ifdef IPV6_MULTICAST_LOOP
+#if defined(INCLUDE_IPV6_MULTICAST_SUPPORT) && defined(IPV6_MULTICAST_LOOP)
u_int off6 = 0;
#endif
@@ -2795,7 +2835,6 @@ open_socket(
{
SOCKET fd;
int errval;
- char scopetext[16];
/*
* int is OK for REUSEADR per
* http://www.kohala.com/start/mcast.api.txt
@@ -2945,16 +2984,10 @@ open_socket(
|| debug > 1
#endif
) {
- if (SCOPE(addr))
- snprintf(scopetext, sizeof(scopetext),
- "%%%d", SCOPE(addr));
- else
- scopetext[0] = 0;
-
msyslog(LOG_ERR,
- "bind(%d) AF_INET%s %s%s#%d%s flags 0x%x failed: %m",
+ "bind(%d) AF_INET%s %s#%d%s flags 0x%x failed: %m",
fd, IS_IPV6(addr) ? "6" : "",
- stoa(addr), scopetext, SRCPORT(addr),
+ stoa(addr), SRCPORT(addr),
IS_MCAST(addr) ? " (multicast)" : "",
interf->flags);
}
@@ -3198,8 +3231,8 @@ read_refclock_packet(
}
i = (rp->datalen == 0
- || rp->datalen > sizeof(rb->recv_space))
- ? sizeof(rb->recv_space)
+ || rp->datalen > (int)sizeof(rb->recv_space))
+ ? (int)sizeof(rb->recv_space)
: rp->datalen;
do {
buflen = read(fd, (char *)&rb->recv_space, (u_int)i);
@@ -3321,8 +3354,8 @@ fetch_timestamp(
tvp->tv_usec = (long)(ticks * 1e6 *
sys_tick);
}
- DPRINTF(4, ("fetch_timestamp: system usec network time stamp: %ld.%06ld\n",
- tvp->tv_sec, tvp->tv_usec));
+ DPRINTF(4, ("fetch_timestamp: system usec network time stamp: %jd.%06ld\n",
+ (intmax_t)tvp->tv_sec, (long)tvp->tv_usec));
nts = tval_stamp_to_lfp(*tvp);
break;
#endif /* HAVE_TIMESTAMP */
@@ -3449,28 +3482,24 @@ read_network_packet(
** Bug 2672: Some OSes (MacOSX and Linux) don't block spoofed ::1
*/
- // temporary hack...
-#ifndef HAVE_SOLARIS_PRIVS
if (AF_INET6 == itf->family) {
- DPRINTF(1, ("Got an IPv6 packet, from <%s> (%d) to <%s> (%d)\n",
+ DPRINTF(2, ("Got an IPv6 packet, from <%s> (%d) to <%s> (%d)\n",
stoa(&rb->recv_srcadr),
- IN6_IS_ADDR_LOOPBACK(&rb->recv_srcadr.sa6.sin6_addr),
+ IN6_IS_ADDR_LOOPBACK(PSOCK_ADDR6(&rb->recv_srcadr)),
stoa(&itf->sin),
- !IN6_IS_ADDR_LOOPBACK(&itf->sin.sa6.sin6_addr)
+ !IN6_IS_ADDR_LOOPBACK(PSOCK_ADDR6(&itf->sin))
));
- }
- if ( AF_INET6 == itf->family
- && IN6_IS_ADDR_LOOPBACK(&rb->recv_srcadr.sa6.sin6_addr)
- && !IN6_IS_ADDR_LOOPBACK(&itf->sin.sa6.sin6_addr)
- ) {
- packets_dropped++;
- DPRINTF(1, ("DROPPING that packet\n"));
- freerecvbuf(rb);
- return buflen;
+ if ( IN6_IS_ADDR_LOOPBACK(PSOCK_ADDR6(&rb->recv_srcadr))
+ && !IN6_IS_ADDR_LOOPBACK(PSOCK_ADDR6(&itf->sin))
+ ) {
+ packets_dropped++;
+ DPRINTF(2, ("DROPPING that packet\n"));
+ freerecvbuf(rb);
+ return buflen;
+ }
+ DPRINTF(2, ("processing that packet\n"));
}
- DPRINTF(1, ("processing that packet\n"));
-#endif
/*
* Got one. Mark how and when it got here,
@@ -4040,7 +4069,7 @@ calc_addr_distance(
found_greater = FALSE;
a1_greater = FALSE; /* suppress pot. uninit. warning */
- for (i = 0; i < sizeof(NSRCADR6(a1)); i++) {
+ for (i = 0; i < (int)sizeof(NSRCADR6(a1)); i++) {
if (!found_greater &&
NSRCADR6(a1)[i] != NSRCADR6(a2)[i]) {
found_greater = TRUE;
@@ -4083,7 +4112,7 @@ cmp_addr_distance(
return 1;
}
- for (i = 0; i < sizeof(NSRCADR6(d1)); i++) {
+ for (i = 0; i < (int)sizeof(NSRCADR6(d1)); i++) {
if (NSRCADR6(d1)[i] < NSRCADR6(d2)[i])
return -1;
else if (NSRCADR6(d1)[i] > NSRCADR6(d2)[i])
diff --git a/ntpd/ntp_keyword.h b/ntpd/ntp_keyword.h
index 8b82ec006c2b..131cf0fab1f9 100644
--- a/ntpd/ntp_keyword.h
+++ b/ntpd/ntp_keyword.h
@@ -2,7 +2,7 @@
* ntp_keyword.h
*
* NOTE: edit this file with caution, it is generated by keyword-gen.c
- * Generated 2013-08-04 04:56:14 UTC diff_ignore_line
+ * Generated 2015-01-03 23:51:10 UTC diff_ignore_line
*
*/
#include "ntp_scanner.h"
@@ -10,7 +10,7 @@
#define LOWEST_KEYWORD_ID 258
-const char * const keyword_text[186] = {
+const char * const keyword_text[187] = {
/* 0 258 T_Abbrev */ "abbrev",
/* 1 259 T_Age */ "age",
/* 2 260 T_All */ "all",
@@ -99,109 +99,110 @@ const char * const keyword_text[186] = {
/* 85 343 T_Maxdist */ "maxdist",
/* 86 344 T_Maxmem */ "maxmem",
/* 87 345 T_Maxpoll */ "maxpoll",
- /* 88 346 T_Mem */ "mem",
- /* 89 347 T_Memlock */ "memlock",
- /* 90 348 T_Minclock */ "minclock",
- /* 91 349 T_Mindepth */ "mindepth",
- /* 92 350 T_Mindist */ "mindist",
- /* 93 351 T_Minimum */ "minimum",
- /* 94 352 T_Minpoll */ "minpoll",
- /* 95 353 T_Minsane */ "minsane",
- /* 96 354 T_Mode */ "mode",
- /* 97 355 T_Mode7 */ "mode7",
- /* 98 356 T_Monitor */ "monitor",
- /* 99 357 T_Month */ "month",
- /* 100 358 T_Mru */ "mru",
- /* 101 359 T_Multicastclient */ "multicastclient",
- /* 102 360 T_Nic */ "nic",
- /* 103 361 T_Nolink */ "nolink",
- /* 104 362 T_Nomodify */ "nomodify",
- /* 105 363 T_Nomrulist */ "nomrulist",
- /* 106 364 T_None */ "none",
- /* 107 365 T_Nonvolatile */ "nonvolatile",
- /* 108 366 T_Nopeer */ "nopeer",
- /* 109 367 T_Noquery */ "noquery",
- /* 110 368 T_Noselect */ "noselect",
- /* 111 369 T_Noserve */ "noserve",
- /* 112 370 T_Notrap */ "notrap",
- /* 113 371 T_Notrust */ "notrust",
- /* 114 372 T_Ntp */ "ntp",
- /* 115 373 T_Ntpport */ "ntpport",
- /* 116 374 T_NtpSignDsocket */ "ntpsigndsocket",
- /* 117 375 T_Orphan */ "orphan",
- /* 118 376 T_Orphanwait */ "orphanwait",
- /* 119 377 T_Panic */ "panic",
- /* 120 378 T_Peer */ "peer",
- /* 121 379 T_Peerstats */ "peerstats",
- /* 122 380 T_Phone */ "phone",
- /* 123 381 T_Pid */ "pid",
- /* 124 382 T_Pidfile */ "pidfile",
- /* 125 383 T_Pool */ "pool",
- /* 126 384 T_Port */ "port",
- /* 127 385 T_Preempt */ "preempt",
- /* 128 386 T_Prefer */ "prefer",
- /* 129 387 T_Protostats */ "protostats",
- /* 130 388 T_Pw */ "pw",
- /* 131 389 T_Randfile */ "randfile",
- /* 132 390 T_Rawstats */ "rawstats",
- /* 133 391 T_Refid */ "refid",
- /* 134 392 T_Requestkey */ "requestkey",
- /* 135 393 T_Reset */ "reset",
- /* 136 394 T_Restrict */ "restrict",
- /* 137 395 T_Revoke */ "revoke",
- /* 138 396 T_Rlimit */ "rlimit",
- /* 139 397 T_Saveconfigdir */ "saveconfigdir",
- /* 140 398 T_Server */ "server",
- /* 141 399 T_Setvar */ "setvar",
- /* 142 400 T_Source */ "source",
- /* 143 401 T_Stacksize */ "stacksize",
- /* 144 402 T_Statistics */ "statistics",
- /* 145 403 T_Stats */ "stats",
- /* 146 404 T_Statsdir */ "statsdir",
- /* 147 405 T_Step */ "step",
- /* 148 406 T_Stepout */ "stepout",
- /* 149 407 T_Stratum */ "stratum",
- /* 150 408 T_String */ NULL,
- /* 151 409 T_Sys */ "sys",
- /* 152 410 T_Sysstats */ "sysstats",
- /* 153 411 T_Tick */ "tick",
- /* 154 412 T_Time1 */ "time1",
- /* 155 413 T_Time2 */ "time2",
- /* 156 414 T_Timer */ "timer",
- /* 157 415 T_Timingstats */ "timingstats",
- /* 158 416 T_Tinker */ "tinker",
- /* 159 417 T_Tos */ "tos",
- /* 160 418 T_Trap */ "trap",
- /* 161 419 T_True */ "true",
- /* 162 420 T_Trustedkey */ "trustedkey",
- /* 163 421 T_Ttl */ "ttl",
- /* 164 422 T_Type */ "type",
- /* 165 423 T_U_int */ NULL,
- /* 166 424 T_Unconfig */ "unconfig",
- /* 167 425 T_Unpeer */ "unpeer",
- /* 168 426 T_Version */ "version",
- /* 169 427 T_WanderThreshold */ NULL,
- /* 170 428 T_Week */ "week",
- /* 171 429 T_Wildcard */ "wildcard",
- /* 172 430 T_Xleave */ "xleave",
- /* 173 431 T_Year */ "year",
- /* 174 432 T_Flag */ NULL,
- /* 175 433 T_EOC */ NULL,
- /* 176 434 T_Simulate */ "simulate",
- /* 177 435 T_Beep_Delay */ "beep_delay",
- /* 178 436 T_Sim_Duration */ "simulation_duration",
- /* 179 437 T_Server_Offset */ "server_offset",
- /* 180 438 T_Duration */ "duration",
- /* 181 439 T_Freq_Offset */ "freq_offset",
- /* 182 440 T_Wander */ "wander",
- /* 183 441 T_Jitter */ "jitter",
- /* 184 442 T_Prop_Delay */ "prop_delay",
- /* 185 443 T_Proc_Delay */ "proc_delay"
+ /* 88 346 T_Mdnstries */ "mdnstries",
+ /* 89 347 T_Mem */ "mem",
+ /* 90 348 T_Memlock */ "memlock",
+ /* 91 349 T_Minclock */ "minclock",
+ /* 92 350 T_Mindepth */ "mindepth",
+ /* 93 351 T_Mindist */ "mindist",
+ /* 94 352 T_Minimum */ "minimum",
+ /* 95 353 T_Minpoll */ "minpoll",
+ /* 96 354 T_Minsane */ "minsane",
+ /* 97 355 T_Mode */ "mode",
+ /* 98 356 T_Mode7 */ "mode7",
+ /* 99 357 T_Monitor */ "monitor",
+ /* 100 358 T_Month */ "month",
+ /* 101 359 T_Mru */ "mru",
+ /* 102 360 T_Multicastclient */ "multicastclient",
+ /* 103 361 T_Nic */ "nic",
+ /* 104 362 T_Nolink */ "nolink",
+ /* 105 363 T_Nomodify */ "nomodify",
+ /* 106 364 T_Nomrulist */ "nomrulist",
+ /* 107 365 T_None */ "none",
+ /* 108 366 T_Nonvolatile */ "nonvolatile",
+ /* 109 367 T_Nopeer */ "nopeer",
+ /* 110 368 T_Noquery */ "noquery",
+ /* 111 369 T_Noselect */ "noselect",
+ /* 112 370 T_Noserve */ "noserve",
+ /* 113 371 T_Notrap */ "notrap",
+ /* 114 372 T_Notrust */ "notrust",
+ /* 115 373 T_Ntp */ "ntp",
+ /* 116 374 T_Ntpport */ "ntpport",
+ /* 117 375 T_NtpSignDsocket */ "ntpsigndsocket",
+ /* 118 376 T_Orphan */ "orphan",
+ /* 119 377 T_Orphanwait */ "orphanwait",
+ /* 120 378 T_Panic */ "panic",
+ /* 121 379 T_Peer */ "peer",
+ /* 122 380 T_Peerstats */ "peerstats",
+ /* 123 381 T_Phone */ "phone",
+ /* 124 382 T_Pid */ "pid",
+ /* 125 383 T_Pidfile */ "pidfile",
+ /* 126 384 T_Pool */ "pool",
+ /* 127 385 T_Port */ "port",
+ /* 128 386 T_Preempt */ "preempt",
+ /* 129 387 T_Prefer */ "prefer",
+ /* 130 388 T_Protostats */ "protostats",
+ /* 131 389 T_Pw */ "pw",
+ /* 132 390 T_Randfile */ "randfile",
+ /* 133 391 T_Rawstats */ "rawstats",
+ /* 134 392 T_Refid */ "refid",
+ /* 135 393 T_Requestkey */ "requestkey",
+ /* 136 394 T_Reset */ "reset",
+ /* 137 395 T_Restrict */ "restrict",
+ /* 138 396 T_Revoke */ "revoke",
+ /* 139 397 T_Rlimit */ "rlimit",
+ /* 140 398 T_Saveconfigdir */ "saveconfigdir",
+ /* 141 399 T_Server */ "server",
+ /* 142 400 T_Setvar */ "setvar",
+ /* 143 401 T_Source */ "source",
+ /* 144 402 T_Stacksize */ "stacksize",
+ /* 145 403 T_Statistics */ "statistics",
+ /* 146 404 T_Stats */ "stats",
+ /* 147 405 T_Statsdir */ "statsdir",
+ /* 148 406 T_Step */ "step",
+ /* 149 407 T_Stepout */ "stepout",
+ /* 150 408 T_Stratum */ "stratum",
+ /* 151 409 T_String */ NULL,
+ /* 152 410 T_Sys */ "sys",
+ /* 153 411 T_Sysstats */ "sysstats",
+ /* 154 412 T_Tick */ "tick",
+ /* 155 413 T_Time1 */ "time1",
+ /* 156 414 T_Time2 */ "time2",
+ /* 157 415 T_Timer */ "timer",
+ /* 158 416 T_Timingstats */ "timingstats",
+ /* 159 417 T_Tinker */ "tinker",
+ /* 160 418 T_Tos */ "tos",
+ /* 161 419 T_Trap */ "trap",
+ /* 162 420 T_True */ "true",
+ /* 163 421 T_Trustedkey */ "trustedkey",
+ /* 164 422 T_Ttl */ "ttl",
+ /* 165 423 T_Type */ "type",
+ /* 166 424 T_U_int */ NULL,
+ /* 167 425 T_Unconfig */ "unconfig",
+ /* 168 426 T_Unpeer */ "unpeer",
+ /* 169 427 T_Version */ "version",
+ /* 170 428 T_WanderThreshold */ NULL,
+ /* 171 429 T_Week */ "week",
+ /* 172 430 T_Wildcard */ "wildcard",
+ /* 173 431 T_Xleave */ "xleave",
+ /* 174 432 T_Year */ "year",
+ /* 175 433 T_Flag */ NULL,
+ /* 176 434 T_EOC */ NULL,
+ /* 177 435 T_Simulate */ "simulate",
+ /* 178 436 T_Beep_Delay */ "beep_delay",
+ /* 179 437 T_Sim_Duration */ "simulation_duration",
+ /* 180 438 T_Server_Offset */ "server_offset",
+ /* 181 439 T_Duration */ "duration",
+ /* 182 440 T_Freq_Offset */ "freq_offset",
+ /* 183 441 T_Wander */ "wander",
+ /* 184 442 T_Jitter */ "jitter",
+ /* 185 443 T_Prop_Delay */ "prop_delay",
+ /* 186 444 T_Proc_Delay */ "proc_delay"
};
-#define SCANNER_INIT_S 822
+#define SCANNER_INIT_S 830
-const scan_state sst[825] = {
+const scan_state sst[833] = {
/*SS_T( ch, f-by, match, other ), */
0, /* 0 */
S_ST( '-', 3, 322, 0 ), /* 1 */
@@ -247,7 +248,7 @@ const scan_state sst[825] = {
S_ST( 'd', 3, 42, 0 ), /* 41 beep_ */
S_ST( 'e', 3, 43, 0 ), /* 42 beep_d */
S_ST( 'l', 3, 44, 0 ), /* 43 beep_de */
- S_ST( 'a', 3, 435, 0 ), /* 44 beep_del */
+ S_ST( 'a', 3, 436, 0 ), /* 44 beep_del */
S_ST( 'r', 3, 46, 34 ), /* 45 b */
S_ST( 'o', 3, 47, 0 ), /* 46 br */
S_ST( 'a', 3, 48, 0 ), /* 47 bro */
@@ -345,7 +346,7 @@ const scan_state sst[825] = {
S_ST( 'a', 3, 140, 0 ), /* 139 dur */
S_ST( 't', 3, 141, 0 ), /* 140 dura */
S_ST( 'i', 3, 142, 0 ), /* 141 durat */
- S_ST( 'o', 3, 438, 0 ), /* 142 durati */
+ S_ST( 'o', 3, 439, 0 ), /* 142 durati */
S_ST( 'e', 3, 144, 105 ), /* 143 */
S_ST( 'n', 3, 292, 0 ), /* 144 e */
S_ST( 'a', 3, 146, 0 ), /* 145 en */
@@ -371,7 +372,7 @@ const scan_state sst[825] = {
S_ST( 'f', 3, 166, 0 ), /* 165 freq_o */
S_ST( 'f', 3, 167, 0 ), /* 166 freq_of */
S_ST( 's', 3, 168, 0 ), /* 167 freq_off */
- S_ST( 'e', 3, 439, 0 ), /* 168 freq_offs */
+ S_ST( 'e', 3, 440, 0 ), /* 168 freq_offs */
S_ST( 'u', 3, 170, 161 ), /* 169 f */
S_ST( 'd', 3, 171, 0 ), /* 170 fu */
S_ST( 'g', 3, 304, 0 ), /* 171 fud */
@@ -431,7 +432,7 @@ const scan_state sst[825] = {
S_ST( 'i', 3, 226, 0 ), /* 225 j */
S_ST( 't', 3, 227, 0 ), /* 226 ji */
S_ST( 't', 3, 228, 0 ), /* 227 jit */
- S_ST( 'e', 3, 441, 0 ), /* 228 jitt */
+ S_ST( 'e', 3, 442, 0 ), /* 228 jitt */
S_ST( 'k', 3, 236, 224 ), /* 229 */
S_ST( 'e', 3, 324, 0 ), /* 230 k */
S_ST( 'r', 3, 232, 0 ), /* 231 ke */
@@ -456,7 +457,7 @@ const scan_state sst[825] = {
S_ST( 's', 3, 251, 249 ), /* 250 li */
S_ST( 't', 3, 252, 0 ), /* 251 lis */
S_ST( 'e', 3, 332, 0 ), /* 252 list */
- S_ST( 'o', 3, 446, 244 ), /* 253 l */
+ S_ST( 'o', 3, 447, 244 ), /* 253 l */
S_ST( 'g', 3, 315, 0 ), /* 254 lo */
S_ST( 'c', 3, 256, 0 ), /* 255 log */
S_ST( 'o', 3, 257, 0 ), /* 256 logc */
@@ -520,7 +521,7 @@ const scan_state sst[825] = {
S_ST( 'e', 1, 0, 0 ), /* 314 T_Includefile */
S_ST( 'f', 3, 317, 255 ), /* 315 log */
S_ST( 'e', 0, 0, 0 ), /* 316 T_Interface */
- S_ST( 'i', 3, 408, 0 ), /* 317 logf */
+ S_ST( 'i', 3, 409, 0 ), /* 317 logf */
S_ST( 'o', 0, 0, 193 ), /* 318 T_Io */
S_ST( '4', 0, 0, 0 ), /* 319 T_Ipv4 */
S_ST( '4', 0, 0, 0 ), /* 320 T_Ipv4_flag */
@@ -549,484 +550,492 @@ const scan_state sst[825] = {
S_ST( 't', 0, 0, 0 ), /* 343 T_Maxdist */
S_ST( 'm', 0, 0, 0 ), /* 344 T_Maxmem */
S_ST( 'l', 0, 0, 0 ), /* 345 T_Maxpoll */
- S_ST( 'm', 0, 492, 0 ), /* 346 T_Mem */
- S_ST( 'k', 0, 0, 0 ), /* 347 T_Memlock */
- S_ST( 'k', 0, 0, 0 ), /* 348 T_Minclock */
- S_ST( 'h', 0, 0, 0 ), /* 349 T_Mindepth */
- S_ST( 't', 0, 0, 0 ), /* 350 T_Mindist */
- S_ST( 'm', 0, 0, 0 ), /* 351 T_Minimum */
- S_ST( 'l', 0, 0, 0 ), /* 352 T_Minpoll */
- S_ST( 'e', 0, 0, 0 ), /* 353 T_Minsane */
- S_ST( 'e', 0, 355, 0 ), /* 354 T_Mode */
- S_ST( '7', 0, 0, 0 ), /* 355 T_Mode7 */
- S_ST( 'r', 0, 0, 0 ), /* 356 T_Monitor */
- S_ST( 'h', 0, 0, 0 ), /* 357 T_Month */
- S_ST( 'u', 0, 0, 0 ), /* 358 T_Mru */
- S_ST( 't', 2, 0, 0 ), /* 359 T_Multicastclient */
- S_ST( 'c', 0, 0, 0 ), /* 360 T_Nic */
- S_ST( 'k', 0, 0, 0 ), /* 361 T_Nolink */
- S_ST( 'y', 0, 0, 0 ), /* 362 T_Nomodify */
- S_ST( 't', 0, 0, 0 ), /* 363 T_Nomrulist */
- S_ST( 'e', 0, 0, 0 ), /* 364 T_None */
- S_ST( 'e', 0, 0, 0 ), /* 365 T_Nonvolatile */
- S_ST( 'r', 0, 0, 0 ), /* 366 T_Nopeer */
- S_ST( 'y', 0, 0, 0 ), /* 367 T_Noquery */
- S_ST( 't', 0, 0, 0 ), /* 368 T_Noselect */
- S_ST( 'e', 0, 0, 0 ), /* 369 T_Noserve */
- S_ST( 'p', 0, 0, 0 ), /* 370 T_Notrap */
- S_ST( 't', 0, 0, 0 ), /* 371 T_Notrust */
- S_ST( 'p', 0, 588, 0 ), /* 372 T_Ntp */
- S_ST( 't', 0, 0, 0 ), /* 373 T_Ntpport */
- S_ST( 't', 1, 0, 0 ), /* 374 T_NtpSignDsocket */
- S_ST( 'n', 0, 603, 0 ), /* 375 T_Orphan */
- S_ST( 't', 0, 0, 0 ), /* 376 T_Orphanwait */
- S_ST( 'c', 0, 0, 0 ), /* 377 T_Panic */
- S_ST( 'r', 1, 612, 0 ), /* 378 T_Peer */
- S_ST( 's', 0, 0, 0 ), /* 379 T_Peerstats */
- S_ST( 'e', 2, 0, 0 ), /* 380 T_Phone */
- S_ST( 'd', 0, 620, 0 ), /* 381 T_Pid */
- S_ST( 'e', 1, 0, 0 ), /* 382 T_Pidfile */
- S_ST( 'l', 1, 0, 0 ), /* 383 T_Pool */
- S_ST( 't', 0, 0, 0 ), /* 384 T_Port */
- S_ST( 't', 0, 0, 0 ), /* 385 T_Preempt */
- S_ST( 'r', 0, 0, 0 ), /* 386 T_Prefer */
- S_ST( 's', 0, 0, 0 ), /* 387 T_Protostats */
- S_ST( 'w', 1, 0, 626 ), /* 388 T_Pw */
- S_ST( 'e', 1, 0, 0 ), /* 389 T_Randfile */
- S_ST( 's', 0, 0, 0 ), /* 390 T_Rawstats */
- S_ST( 'd', 1, 0, 0 ), /* 391 T_Refid */
- S_ST( 'y', 0, 0, 0 ), /* 392 T_Requestkey */
- S_ST( 't', 0, 0, 0 ), /* 393 T_Reset */
- S_ST( 't', 0, 0, 0 ), /* 394 T_Restrict */
- S_ST( 'e', 0, 0, 0 ), /* 395 T_Revoke */
- S_ST( 't', 0, 0, 0 ), /* 396 T_Rlimit */
- S_ST( 'r', 1, 0, 0 ), /* 397 T_Saveconfigdir */
- S_ST( 'r', 1, 703, 0 ), /* 398 T_Server */
- S_ST( 'r', 1, 0, 0 ), /* 399 T_Setvar */
- S_ST( 'e', 0, 0, 0 ), /* 400 T_Source */
- S_ST( 'e', 0, 0, 0 ), /* 401 T_Stacksize */
- S_ST( 's', 0, 0, 0 ), /* 402 T_Statistics */
- S_ST( 's', 0, 746, 741 ), /* 403 T_Stats */
- S_ST( 'r', 1, 0, 0 ), /* 404 T_Statsdir */
- S_ST( 'p', 0, 749, 0 ), /* 405 T_Step */
- S_ST( 't', 0, 0, 0 ), /* 406 T_Stepout */
- S_ST( 'm', 0, 0, 0 ), /* 407 T_Stratum */
- S_ST( 'l', 3, 334, 0 ), /* 408 logfi */
- S_ST( 's', 0, 756, 0 ), /* 409 T_Sys */
- S_ST( 's', 0, 0, 0 ), /* 410 T_Sysstats */
- S_ST( 'k', 0, 0, 0 ), /* 411 T_Tick */
- S_ST( '1', 0, 0, 0 ), /* 412 T_Time1 */
- S_ST( '2', 0, 0, 412 ), /* 413 T_Time2 */
- S_ST( 'r', 0, 0, 413 ), /* 414 T_Timer */
- S_ST( 's', 0, 0, 0 ), /* 415 T_Timingstats */
- S_ST( 'r', 0, 0, 0 ), /* 416 T_Tinker */
- S_ST( 's', 0, 0, 0 ), /* 417 T_Tos */
- S_ST( 'p', 1, 0, 0 ), /* 418 T_Trap */
- S_ST( 'e', 0, 0, 0 ), /* 419 T_True */
- S_ST( 'y', 0, 0, 0 ), /* 420 T_Trustedkey */
- S_ST( 'l', 0, 0, 0 ), /* 421 T_Ttl */
- S_ST( 'e', 0, 0, 0 ), /* 422 T_Type */
- S_ST( 'o', 3, 427, 254 ), /* 423 lo */
- S_ST( 'g', 1, 0, 0 ), /* 424 T_Unconfig */
- S_ST( 'r', 1, 0, 0 ), /* 425 T_Unpeer */
- S_ST( 'n', 0, 0, 0 ), /* 426 T_Version */
- S_ST( 'p', 3, 432, 0 ), /* 427 loo */
- S_ST( 'k', 0, 0, 0 ), /* 428 T_Week */
- S_ST( 'd', 0, 0, 0 ), /* 429 T_Wildcard */
- S_ST( 'e', 0, 0, 0 ), /* 430 T_Xleave */
- S_ST( 'r', 0, 0, 0 ), /* 431 T_Year */
- S_ST( 's', 3, 433, 0 ), /* 432 loop */
- S_ST( 't', 3, 444, 0 ), /* 433 loops */
- S_ST( 'e', 0, 0, 0 ), /* 434 T_Simulate */
- S_ST( 'y', 0, 0, 0 ), /* 435 T_Beep_Delay */
- S_ST( 'n', 0, 0, 0 ), /* 436 T_Sim_Duration */
- S_ST( 't', 0, 0, 0 ), /* 437 T_Server_Offset */
- S_ST( 'n', 0, 0, 0 ), /* 438 T_Duration */
- S_ST( 't', 0, 0, 0 ), /* 439 T_Freq_Offset */
- S_ST( 'r', 0, 0, 0 ), /* 440 T_Wander */
- S_ST( 'r', 0, 0, 0 ), /* 441 T_Jitter */
- S_ST( 'y', 0, 0, 0 ), /* 442 T_Prop_Delay */
- S_ST( 'y', 0, 0, 0 ), /* 443 T_Proc_Delay */
- S_ST( 'a', 3, 445, 0 ), /* 444 loopst */
- S_ST( 't', 3, 335, 0 ), /* 445 loopsta */
- S_ST( 'w', 3, 447, 423 ), /* 446 lo */
- S_ST( 'p', 3, 448, 0 ), /* 447 low */
- S_ST( 'r', 3, 449, 0 ), /* 448 lowp */
- S_ST( 'i', 3, 450, 0 ), /* 449 lowpr */
- S_ST( 'o', 3, 451, 0 ), /* 450 lowpri */
- S_ST( 't', 3, 452, 0 ), /* 451 lowprio */
- S_ST( 'r', 3, 453, 0 ), /* 452 lowpriot */
- S_ST( 'a', 3, 336, 0 ), /* 453 lowpriotr */
- S_ST( 'm', 3, 528, 237 ), /* 454 */
- S_ST( 'a', 3, 473, 0 ), /* 455 m */
- S_ST( 'n', 3, 457, 0 ), /* 456 ma */
- S_ST( 'y', 3, 458, 0 ), /* 457 man */
- S_ST( 'c', 3, 459, 0 ), /* 458 many */
- S_ST( 'a', 3, 460, 0 ), /* 459 manyc */
- S_ST( 's', 3, 461, 0 ), /* 460 manyca */
- S_ST( 't', 3, 467, 0 ), /* 461 manycas */
- S_ST( 'c', 3, 463, 0 ), /* 462 manycast */
- S_ST( 'l', 3, 464, 0 ), /* 463 manycastc */
- S_ST( 'i', 3, 465, 0 ), /* 464 manycastcl */
- S_ST( 'e', 3, 466, 0 ), /* 465 manycastcli */
- S_ST( 'n', 3, 337, 0 ), /* 466 manycastclie */
- S_ST( 's', 3, 468, 462 ), /* 467 manycast */
- S_ST( 'e', 3, 469, 0 ), /* 468 manycasts */
- S_ST( 'r', 3, 470, 0 ), /* 469 manycastse */
- S_ST( 'v', 3, 471, 0 ), /* 470 manycastser */
- S_ST( 'e', 3, 338, 0 ), /* 471 manycastserv */
- S_ST( 's', 3, 339, 456 ), /* 472 ma */
- S_ST( 'x', 3, 488, 472 ), /* 473 ma */
- S_ST( 'a', 3, 475, 0 ), /* 474 max */
- S_ST( 'g', 3, 340, 0 ), /* 475 maxa */
- S_ST( 'c', 3, 477, 474 ), /* 476 max */
- S_ST( 'l', 3, 478, 0 ), /* 477 maxc */
- S_ST( 'o', 3, 479, 0 ), /* 478 maxcl */
- S_ST( 'c', 3, 341, 0 ), /* 479 maxclo */
- S_ST( 'd', 3, 484, 476 ), /* 480 max */
- S_ST( 'e', 3, 482, 0 ), /* 481 maxd */
- S_ST( 'p', 3, 483, 0 ), /* 482 maxde */
- S_ST( 't', 3, 342, 0 ), /* 483 maxdep */
- S_ST( 'i', 3, 485, 481 ), /* 484 maxd */
- S_ST( 's', 3, 343, 0 ), /* 485 maxdi */
- S_ST( 'm', 3, 487, 480 ), /* 486 max */
- S_ST( 'e', 3, 344, 0 ), /* 487 maxm */
- S_ST( 'p', 3, 489, 486 ), /* 488 max */
- S_ST( 'o', 3, 490, 0 ), /* 489 maxp */
- S_ST( 'l', 3, 345, 0 ), /* 490 maxpo */
- S_ST( 'e', 3, 346, 455 ), /* 491 m */
- S_ST( 'l', 3, 493, 0 ), /* 492 mem */
- S_ST( 'o', 3, 494, 0 ), /* 493 meml */
- S_ST( 'c', 3, 347, 0 ), /* 494 memlo */
- S_ST( 'i', 3, 496, 491 ), /* 495 m */
- S_ST( 'n', 3, 513, 0 ), /* 496 mi */
- S_ST( 'c', 3, 498, 0 ), /* 497 min */
- S_ST( 'l', 3, 499, 0 ), /* 498 minc */
- S_ST( 'o', 3, 500, 0 ), /* 499 mincl */
- S_ST( 'c', 3, 348, 0 ), /* 500 minclo */
- S_ST( 'd', 3, 505, 497 ), /* 501 min */
- S_ST( 'e', 3, 503, 0 ), /* 502 mind */
- S_ST( 'p', 3, 504, 0 ), /* 503 minde */
- S_ST( 't', 3, 349, 0 ), /* 504 mindep */
- S_ST( 'i', 3, 506, 502 ), /* 505 mind */
- S_ST( 's', 3, 350, 0 ), /* 506 mindi */
- S_ST( 'i', 3, 508, 501 ), /* 507 min */
- S_ST( 'm', 3, 509, 0 ), /* 508 mini */
- S_ST( 'u', 3, 351, 0 ), /* 509 minim */
- S_ST( 'p', 3, 511, 507 ), /* 510 min */
- S_ST( 'o', 3, 512, 0 ), /* 511 minp */
- S_ST( 'l', 3, 352, 0 ), /* 512 minpo */
- S_ST( 's', 3, 514, 510 ), /* 513 min */
- S_ST( 'a', 3, 515, 0 ), /* 514 mins */
- S_ST( 'n', 3, 353, 0 ), /* 515 minsa */
- S_ST( 'o', 3, 518, 495 ), /* 516 m */
- S_ST( 'd', 3, 354, 0 ), /* 517 mo */
- S_ST( 'n', 3, 522, 517 ), /* 518 mo */
- S_ST( 'i', 3, 520, 0 ), /* 519 mon */
- S_ST( 't', 3, 521, 0 ), /* 520 moni */
- S_ST( 'o', 3, 356, 0 ), /* 521 monit */
- S_ST( 't', 3, 357, 519 ), /* 522 mon */
- S_ST( 'r', 3, 358, 516 ), /* 523 m */
- S_ST( 's', 3, 525, 523 ), /* 524 m */
- S_ST( 's', 3, 526, 0 ), /* 525 ms */
- S_ST( 'n', 3, 527, 0 ), /* 526 mss */
- S_ST( 't', 3, 328, 0 ), /* 527 mssn */
- S_ST( 'u', 3, 529, 524 ), /* 528 m */
- S_ST( 'l', 3, 530, 0 ), /* 529 mu */
- S_ST( 't', 3, 531, 0 ), /* 530 mul */
- S_ST( 'i', 3, 532, 0 ), /* 531 mult */
- S_ST( 'c', 3, 533, 0 ), /* 532 multi */
- S_ST( 'a', 3, 534, 0 ), /* 533 multic */
- S_ST( 's', 3, 535, 0 ), /* 534 multica */
- S_ST( 't', 3, 536, 0 ), /* 535 multicas */
- S_ST( 'c', 3, 537, 0 ), /* 536 multicast */
- S_ST( 'l', 3, 538, 0 ), /* 537 multicastc */
- S_ST( 'i', 3, 539, 0 ), /* 538 multicastcl */
- S_ST( 'e', 3, 540, 0 ), /* 539 multicastcli */
- S_ST( 'n', 3, 359, 0 ), /* 540 multicastclie */
- S_ST( 'n', 3, 584, 454 ), /* 541 */
- S_ST( 'i', 3, 360, 0 ), /* 542 n */
- S_ST( 'o', 3, 579, 542 ), /* 543 n */
- S_ST( 'l', 3, 545, 0 ), /* 544 no */
- S_ST( 'i', 3, 546, 0 ), /* 545 nol */
- S_ST( 'n', 3, 361, 0 ), /* 546 noli */
- S_ST( 'm', 3, 552, 544 ), /* 547 no */
- S_ST( 'o', 3, 549, 0 ), /* 548 nom */
- S_ST( 'd', 3, 550, 0 ), /* 549 nomo */
- S_ST( 'i', 3, 551, 0 ), /* 550 nomod */
- S_ST( 'f', 3, 362, 0 ), /* 551 nomodi */
- S_ST( 'r', 3, 553, 548 ), /* 552 nom */
- S_ST( 'u', 3, 554, 0 ), /* 553 nomr */
- S_ST( 'l', 3, 555, 0 ), /* 554 nomru */
- S_ST( 'i', 3, 556, 0 ), /* 555 nomrul */
- S_ST( 's', 3, 363, 0 ), /* 556 nomruli */
- S_ST( 'n', 3, 558, 547 ), /* 557 no */
- S_ST( 'v', 3, 559, 364 ), /* 558 non */
- S_ST( 'o', 3, 560, 0 ), /* 559 nonv */
- S_ST( 'l', 3, 561, 0 ), /* 560 nonvo */
- S_ST( 'a', 3, 562, 0 ), /* 561 nonvol */
- S_ST( 't', 3, 563, 0 ), /* 562 nonvola */
- S_ST( 'i', 3, 564, 0 ), /* 563 nonvolat */
- S_ST( 'l', 3, 365, 0 ), /* 564 nonvolati */
- S_ST( 'p', 3, 566, 557 ), /* 565 no */
- S_ST( 'e', 3, 567, 0 ), /* 566 nop */
- S_ST( 'e', 3, 366, 0 ), /* 567 nope */
- S_ST( 'q', 3, 569, 565 ), /* 568 no */
- S_ST( 'u', 3, 570, 0 ), /* 569 noq */
- S_ST( 'e', 3, 571, 0 ), /* 570 noqu */
- S_ST( 'r', 3, 367, 0 ), /* 571 noque */
- S_ST( 's', 3, 573, 568 ), /* 572 no */
- S_ST( 'e', 3, 577, 0 ), /* 573 nos */
- S_ST( 'l', 3, 575, 0 ), /* 574 nose */
- S_ST( 'e', 3, 576, 0 ), /* 575 nosel */
- S_ST( 'c', 3, 368, 0 ), /* 576 nosele */
- S_ST( 'r', 3, 578, 574 ), /* 577 nose */
- S_ST( 'v', 3, 369, 0 ), /* 578 noser */
- S_ST( 't', 3, 580, 572 ), /* 579 no */
- S_ST( 'r', 3, 582, 0 ), /* 580 not */
- S_ST( 'a', 3, 370, 0 ), /* 581 notr */
- S_ST( 'u', 3, 583, 581 ), /* 582 notr */
- S_ST( 's', 3, 371, 0 ), /* 583 notru */
- S_ST( 't', 3, 372, 543 ), /* 584 n */
- S_ST( 'p', 3, 586, 0 ), /* 585 ntp */
- S_ST( 'o', 3, 587, 0 ), /* 586 ntpp */
- S_ST( 'r', 3, 373, 0 ), /* 587 ntppo */
- S_ST( 's', 3, 589, 585 ), /* 588 ntp */
- S_ST( 'i', 3, 590, 0 ), /* 589 ntps */
- S_ST( 'g', 3, 591, 0 ), /* 590 ntpsi */
- S_ST( 'n', 3, 592, 0 ), /* 591 ntpsig */
- S_ST( 'd', 3, 593, 0 ), /* 592 ntpsign */
- S_ST( 's', 3, 594, 0 ), /* 593 ntpsignd */
- S_ST( 'o', 3, 595, 0 ), /* 594 ntpsignds */
- S_ST( 'c', 3, 596, 0 ), /* 595 ntpsigndso */
- S_ST( 'k', 3, 597, 0 ), /* 596 ntpsigndsoc */
- S_ST( 'e', 3, 374, 0 ), /* 597 ntpsigndsock */
- S_ST( 'o', 3, 599, 541 ), /* 598 */
- S_ST( 'r', 3, 600, 0 ), /* 599 o */
- S_ST( 'p', 3, 601, 0 ), /* 600 or */
- S_ST( 'h', 3, 602, 0 ), /* 601 orp */
- S_ST( 'a', 3, 375, 0 ), /* 602 orph */
- S_ST( 'w', 3, 604, 0 ), /* 603 orphan */
- S_ST( 'a', 3, 605, 0 ), /* 604 orphanw */
- S_ST( 'i', 3, 376, 0 ), /* 605 orphanwa */
- S_ST( 'p', 3, 388, 598 ), /* 606 */
- S_ST( 'a', 3, 608, 0 ), /* 607 p */
- S_ST( 'n', 3, 609, 0 ), /* 608 pa */
- S_ST( 'i', 3, 377, 0 ), /* 609 pan */
- S_ST( 'e', 3, 611, 607 ), /* 610 p */
- S_ST( 'e', 3, 378, 0 ), /* 611 pe */
- S_ST( 's', 3, 613, 0 ), /* 612 peer */
- S_ST( 't', 3, 614, 0 ), /* 613 peers */
- S_ST( 'a', 3, 615, 0 ), /* 614 peerst */
- S_ST( 't', 3, 379, 0 ), /* 615 peersta */
- S_ST( 'h', 3, 617, 610 ), /* 616 p */
- S_ST( 'o', 3, 618, 0 ), /* 617 ph */
- S_ST( 'n', 3, 380, 0 ), /* 618 pho */
- S_ST( 'i', 3, 381, 616 ), /* 619 p */
- S_ST( 'f', 3, 621, 0 ), /* 620 pid */
- S_ST( 'i', 3, 622, 0 ), /* 621 pidf */
- S_ST( 'l', 3, 382, 0 ), /* 622 pidfi */
- S_ST( 'o', 3, 625, 619 ), /* 623 p */
- S_ST( 'o', 3, 383, 0 ), /* 624 po */
- S_ST( 'r', 3, 384, 624 ), /* 625 po */
- S_ST( 'r', 3, 633, 623 ), /* 626 p */
- S_ST( 'e', 3, 631, 0 ), /* 627 pr */
- S_ST( 'e', 3, 629, 0 ), /* 628 pre */
- S_ST( 'm', 3, 630, 0 ), /* 629 pree */
- S_ST( 'p', 3, 385, 0 ), /* 630 preem */
- S_ST( 'f', 3, 632, 628 ), /* 631 pre */
- S_ST( 'e', 3, 386, 0 ), /* 632 pref */
- S_ST( 'o', 3, 646, 627 ), /* 633 pr */
- S_ST( 'c', 3, 635, 0 ), /* 634 pro */
- S_ST( '_', 3, 636, 0 ), /* 635 proc */
- S_ST( 'd', 3, 637, 0 ), /* 636 proc_ */
- S_ST( 'e', 3, 638, 0 ), /* 637 proc_d */
- S_ST( 'l', 3, 639, 0 ), /* 638 proc_de */
- S_ST( 'a', 3, 443, 0 ), /* 639 proc_del */
- S_ST( 'p', 3, 641, 634 ), /* 640 pro */
- S_ST( '_', 3, 642, 0 ), /* 641 prop */
- S_ST( 'd', 3, 643, 0 ), /* 642 prop_ */
- S_ST( 'e', 3, 644, 0 ), /* 643 prop_d */
- S_ST( 'l', 3, 645, 0 ), /* 644 prop_de */
- S_ST( 'a', 3, 442, 0 ), /* 645 prop_del */
- S_ST( 't', 3, 647, 640 ), /* 646 pro */
- S_ST( 'o', 3, 648, 0 ), /* 647 prot */
- S_ST( 's', 3, 649, 0 ), /* 648 proto */
- S_ST( 't', 3, 650, 0 ), /* 649 protos */
- S_ST( 'a', 3, 651, 0 ), /* 650 protost */
- S_ST( 't', 3, 387, 0 ), /* 651 protosta */
- S_ST( 'r', 3, 683, 606 ), /* 652 */
- S_ST( 'a', 3, 659, 0 ), /* 653 r */
- S_ST( 'n', 3, 655, 0 ), /* 654 ra */
- S_ST( 'd', 3, 656, 0 ), /* 655 ran */
- S_ST( 'f', 3, 657, 0 ), /* 656 rand */
- S_ST( 'i', 3, 658, 0 ), /* 657 randf */
- S_ST( 'l', 3, 389, 0 ), /* 658 randfi */
- S_ST( 'w', 3, 660, 654 ), /* 659 ra */
- S_ST( 's', 3, 661, 0 ), /* 660 raw */
- S_ST( 't', 3, 662, 0 ), /* 661 raws */
- S_ST( 'a', 3, 663, 0 ), /* 662 rawst */
- S_ST( 't', 3, 390, 0 ), /* 663 rawsta */
- S_ST( 'e', 3, 680, 653 ), /* 664 r */
- S_ST( 'f', 3, 666, 0 ), /* 665 re */
- S_ST( 'i', 3, 391, 0 ), /* 666 ref */
- S_ST( 'q', 3, 668, 665 ), /* 667 re */
- S_ST( 'u', 3, 669, 0 ), /* 668 req */
- S_ST( 'e', 3, 670, 0 ), /* 669 requ */
- S_ST( 's', 3, 671, 0 ), /* 670 reque */
- S_ST( 't', 3, 672, 0 ), /* 671 reques */
- S_ST( 'k', 3, 673, 0 ), /* 672 request */
- S_ST( 'e', 3, 392, 0 ), /* 673 requestk */
- S_ST( 's', 3, 676, 667 ), /* 674 re */
- S_ST( 'e', 3, 393, 0 ), /* 675 res */
- S_ST( 't', 3, 677, 675 ), /* 676 res */
- S_ST( 'r', 3, 678, 0 ), /* 677 rest */
- S_ST( 'i', 3, 679, 0 ), /* 678 restr */
- S_ST( 'c', 3, 394, 0 ), /* 679 restri */
- S_ST( 'v', 3, 681, 674 ), /* 680 re */
- S_ST( 'o', 3, 682, 0 ), /* 681 rev */
- S_ST( 'k', 3, 395, 0 ), /* 682 revo */
- S_ST( 'l', 3, 684, 664 ), /* 683 r */
- S_ST( 'i', 3, 685, 0 ), /* 684 rl */
- S_ST( 'm', 3, 686, 0 ), /* 685 rli */
- S_ST( 'i', 3, 396, 0 ), /* 686 rlim */
- S_ST( 's', 3, 755, 652 ), /* 687 */
- S_ST( 'a', 3, 689, 0 ), /* 688 s */
- S_ST( 'v', 3, 690, 0 ), /* 689 sa */
- S_ST( 'e', 3, 691, 0 ), /* 690 sav */
- S_ST( 'c', 3, 692, 0 ), /* 691 save */
- S_ST( 'o', 3, 693, 0 ), /* 692 savec */
- S_ST( 'n', 3, 694, 0 ), /* 693 saveco */
- S_ST( 'f', 3, 695, 0 ), /* 694 savecon */
- S_ST( 'i', 3, 696, 0 ), /* 695 saveconf */
- S_ST( 'g', 3, 697, 0 ), /* 696 saveconfi */
- S_ST( 'd', 3, 698, 0 ), /* 697 saveconfig */
- S_ST( 'i', 3, 397, 0 ), /* 698 saveconfigd */
- S_ST( 'e', 3, 709, 688 ), /* 699 s */
- S_ST( 'r', 3, 701, 0 ), /* 700 se */
- S_ST( 'v', 3, 702, 0 ), /* 701 ser */
- S_ST( 'e', 3, 398, 0 ), /* 702 serv */
- S_ST( '_', 3, 704, 0 ), /* 703 server */
- S_ST( 'o', 3, 705, 0 ), /* 704 server_ */
- S_ST( 'f', 3, 706, 0 ), /* 705 server_o */
- S_ST( 'f', 3, 707, 0 ), /* 706 server_of */
- S_ST( 's', 3, 708, 0 ), /* 707 server_off */
- S_ST( 'e', 3, 437, 0 ), /* 708 server_offs */
- S_ST( 't', 3, 710, 700 ), /* 709 se */
- S_ST( 'v', 3, 711, 0 ), /* 710 set */
- S_ST( 'a', 3, 399, 0 ), /* 711 setv */
- S_ST( 'i', 3, 713, 699 ), /* 712 s */
- S_ST( 'm', 3, 714, 0 ), /* 713 si */
- S_ST( 'u', 3, 715, 0 ), /* 714 sim */
- S_ST( 'l', 3, 716, 0 ), /* 715 simu */
- S_ST( 'a', 3, 717, 0 ), /* 716 simul */
- S_ST( 't', 3, 718, 0 ), /* 717 simula */
- S_ST( 'i', 3, 719, 434 ), /* 718 simulat */
- S_ST( 'o', 3, 720, 0 ), /* 719 simulati */
- S_ST( 'n', 3, 721, 0 ), /* 720 simulatio */
- S_ST( '_', 3, 722, 0 ), /* 721 simulation */
- S_ST( 'd', 3, 723, 0 ), /* 722 simulation_ */
- S_ST( 'u', 3, 724, 0 ), /* 723 simulation_d */
- S_ST( 'r', 3, 725, 0 ), /* 724 simulation_du */
- S_ST( 'a', 3, 726, 0 ), /* 725 simulation_dur */
- S_ST( 't', 3, 727, 0 ), /* 726 simulation_dura */
- S_ST( 'i', 3, 728, 0 ), /* 727 simulation_durat */
- S_ST( 'o', 3, 436, 0 ), /* 728 simulation_durati */
- S_ST( 'o', 3, 730, 712 ), /* 729 s */
- S_ST( 'u', 3, 731, 0 ), /* 730 so */
- S_ST( 'r', 3, 732, 0 ), /* 731 sou */
- S_ST( 'c', 3, 400, 0 ), /* 732 sour */
- S_ST( 't', 3, 751, 729 ), /* 733 s */
- S_ST( 'a', 3, 740, 0 ), /* 734 st */
- S_ST( 'c', 3, 736, 0 ), /* 735 sta */
- S_ST( 'k', 3, 737, 0 ), /* 736 stac */
- S_ST( 's', 3, 738, 0 ), /* 737 stack */
- S_ST( 'i', 3, 739, 0 ), /* 738 stacks */
- S_ST( 'z', 3, 401, 0 ), /* 739 stacksi */
- S_ST( 't', 3, 403, 735 ), /* 740 sta */
- S_ST( 'i', 3, 742, 0 ), /* 741 stat */
- S_ST( 's', 3, 743, 0 ), /* 742 stati */
- S_ST( 't', 3, 744, 0 ), /* 743 statis */
- S_ST( 'i', 3, 745, 0 ), /* 744 statist */
- S_ST( 'c', 3, 402, 0 ), /* 745 statisti */
- S_ST( 'd', 3, 747, 0 ), /* 746 stats */
- S_ST( 'i', 3, 404, 0 ), /* 747 statsd */
- S_ST( 'e', 3, 405, 734 ), /* 748 st */
- S_ST( 'o', 3, 750, 0 ), /* 749 step */
- S_ST( 'u', 3, 406, 0 ), /* 750 stepo */
- S_ST( 'r', 3, 752, 748 ), /* 751 st */
- S_ST( 'a', 3, 753, 0 ), /* 752 str */
- S_ST( 't', 3, 754, 0 ), /* 753 stra */
- S_ST( 'u', 3, 407, 0 ), /* 754 strat */
- S_ST( 'y', 3, 409, 733 ), /* 755 s */
- S_ST( 's', 3, 757, 0 ), /* 756 sys */
- S_ST( 't', 3, 758, 0 ), /* 757 syss */
- S_ST( 'a', 3, 759, 0 ), /* 758 sysst */
- S_ST( 't', 3, 410, 0 ), /* 759 syssta */
- S_ST( 't', 3, 786, 687 ), /* 760 */
- S_ST( 'i', 3, 772, 0 ), /* 761 t */
- S_ST( 'c', 3, 411, 0 ), /* 762 ti */
- S_ST( 'm', 3, 765, 762 ), /* 763 ti */
- S_ST( 'e', 3, 414, 0 ), /* 764 tim */
- S_ST( 'i', 3, 766, 764 ), /* 765 tim */
- S_ST( 'n', 3, 767, 0 ), /* 766 timi */
- S_ST( 'g', 3, 768, 0 ), /* 767 timin */
- S_ST( 's', 3, 769, 0 ), /* 768 timing */
- S_ST( 't', 3, 770, 0 ), /* 769 timings */
- S_ST( 'a', 3, 771, 0 ), /* 770 timingst */
- S_ST( 't', 3, 415, 0 ), /* 771 timingsta */
- S_ST( 'n', 3, 773, 763 ), /* 772 ti */
- S_ST( 'k', 3, 774, 0 ), /* 773 tin */
- S_ST( 'e', 3, 416, 0 ), /* 774 tink */
- S_ST( 'o', 3, 417, 761 ), /* 775 t */
- S_ST( 'r', 3, 778, 775 ), /* 776 t */
- S_ST( 'a', 3, 418, 0 ), /* 777 tr */
- S_ST( 'u', 3, 779, 777 ), /* 778 tr */
- S_ST( 's', 3, 780, 419 ), /* 779 tru */
- S_ST( 't', 3, 781, 0 ), /* 780 trus */
- S_ST( 'e', 3, 782, 0 ), /* 781 trust */
- S_ST( 'd', 3, 783, 0 ), /* 782 truste */
- S_ST( 'k', 3, 784, 0 ), /* 783 trusted */
- S_ST( 'e', 3, 420, 0 ), /* 784 trustedk */
- S_ST( 't', 3, 421, 776 ), /* 785 t */
- S_ST( 'y', 3, 787, 785 ), /* 786 t */
- S_ST( 'p', 3, 422, 0 ), /* 787 ty */
- S_ST( 'u', 3, 789, 760 ), /* 788 */
- S_ST( 'n', 3, 795, 0 ), /* 789 u */
- S_ST( 'c', 3, 791, 0 ), /* 790 un */
- S_ST( 'o', 3, 792, 0 ), /* 791 unc */
- S_ST( 'n', 3, 793, 0 ), /* 792 unco */
- S_ST( 'f', 3, 794, 0 ), /* 793 uncon */
- S_ST( 'i', 3, 424, 0 ), /* 794 unconf */
- S_ST( 'p', 3, 796, 790 ), /* 795 un */
- S_ST( 'e', 3, 797, 0 ), /* 796 unp */
- S_ST( 'e', 3, 425, 0 ), /* 797 unpe */
- S_ST( 'v', 3, 799, 788 ), /* 798 */
- S_ST( 'e', 3, 800, 0 ), /* 799 v */
- S_ST( 'r', 3, 801, 0 ), /* 800 ve */
- S_ST( 's', 3, 802, 0 ), /* 801 ver */
- S_ST( 'i', 3, 803, 0 ), /* 802 vers */
- S_ST( 'o', 3, 426, 0 ), /* 803 versi */
- S_ST( 'w', 3, 811, 798 ), /* 804 */
- S_ST( 'a', 3, 806, 0 ), /* 805 w */
- S_ST( 'n', 3, 807, 0 ), /* 806 wa */
- S_ST( 'd', 3, 808, 0 ), /* 807 wan */
- S_ST( 'e', 3, 440, 0 ), /* 808 wand */
- S_ST( 'e', 3, 810, 805 ), /* 809 w */
- S_ST( 'e', 3, 428, 0 ), /* 810 we */
- S_ST( 'i', 3, 812, 809 ), /* 811 w */
- S_ST( 'l', 3, 813, 0 ), /* 812 wi */
- S_ST( 'd', 3, 814, 0 ), /* 813 wil */
- S_ST( 'c', 3, 815, 0 ), /* 814 wild */
- S_ST( 'a', 3, 816, 0 ), /* 815 wildc */
- S_ST( 'r', 3, 429, 0 ), /* 816 wildca */
- S_ST( 'x', 3, 818, 804 ), /* 817 */
- S_ST( 'l', 3, 819, 0 ), /* 818 x */
- S_ST( 'e', 3, 820, 0 ), /* 819 xl */
- S_ST( 'a', 3, 821, 0 ), /* 820 xle */
- S_ST( 'v', 3, 430, 0 ), /* 821 xlea */
- S_ST( 'y', 3, 823, 817 ), /* 822 [initial state] */
- S_ST( 'e', 3, 824, 0 ), /* 823 y */
- S_ST( 'a', 3, 431, 0 ) /* 824 ye */
+ S_ST( 's', 0, 0, 0 ), /* 346 T_Mdnstries */
+ S_ST( 'm', 0, 500, 0 ), /* 347 T_Mem */
+ S_ST( 'k', 0, 0, 0 ), /* 348 T_Memlock */
+ S_ST( 'k', 0, 0, 0 ), /* 349 T_Minclock */
+ S_ST( 'h', 0, 0, 0 ), /* 350 T_Mindepth */
+ S_ST( 't', 0, 0, 0 ), /* 351 T_Mindist */
+ S_ST( 'm', 0, 0, 0 ), /* 352 T_Minimum */
+ S_ST( 'l', 0, 0, 0 ), /* 353 T_Minpoll */
+ S_ST( 'e', 0, 0, 0 ), /* 354 T_Minsane */
+ S_ST( 'e', 0, 356, 0 ), /* 355 T_Mode */
+ S_ST( '7', 0, 0, 0 ), /* 356 T_Mode7 */
+ S_ST( 'r', 0, 0, 0 ), /* 357 T_Monitor */
+ S_ST( 'h', 0, 0, 0 ), /* 358 T_Month */
+ S_ST( 'u', 0, 0, 0 ), /* 359 T_Mru */
+ S_ST( 't', 2, 0, 0 ), /* 360 T_Multicastclient */
+ S_ST( 'c', 0, 0, 0 ), /* 361 T_Nic */
+ S_ST( 'k', 0, 0, 0 ), /* 362 T_Nolink */
+ S_ST( 'y', 0, 0, 0 ), /* 363 T_Nomodify */
+ S_ST( 't', 0, 0, 0 ), /* 364 T_Nomrulist */
+ S_ST( 'e', 0, 0, 0 ), /* 365 T_None */
+ S_ST( 'e', 0, 0, 0 ), /* 366 T_Nonvolatile */
+ S_ST( 'r', 0, 0, 0 ), /* 367 T_Nopeer */
+ S_ST( 'y', 0, 0, 0 ), /* 368 T_Noquery */
+ S_ST( 't', 0, 0, 0 ), /* 369 T_Noselect */
+ S_ST( 'e', 0, 0, 0 ), /* 370 T_Noserve */
+ S_ST( 'p', 0, 0, 0 ), /* 371 T_Notrap */
+ S_ST( 't', 0, 0, 0 ), /* 372 T_Notrust */
+ S_ST( 'p', 0, 596, 0 ), /* 373 T_Ntp */
+ S_ST( 't', 0, 0, 0 ), /* 374 T_Ntpport */
+ S_ST( 't', 1, 0, 0 ), /* 375 T_NtpSignDsocket */
+ S_ST( 'n', 0, 611, 0 ), /* 376 T_Orphan */
+ S_ST( 't', 0, 0, 0 ), /* 377 T_Orphanwait */
+ S_ST( 'c', 0, 0, 0 ), /* 378 T_Panic */
+ S_ST( 'r', 1, 620, 0 ), /* 379 T_Peer */
+ S_ST( 's', 0, 0, 0 ), /* 380 T_Peerstats */
+ S_ST( 'e', 2, 0, 0 ), /* 381 T_Phone */
+ S_ST( 'd', 0, 628, 0 ), /* 382 T_Pid */
+ S_ST( 'e', 1, 0, 0 ), /* 383 T_Pidfile */
+ S_ST( 'l', 1, 0, 0 ), /* 384 T_Pool */
+ S_ST( 't', 0, 0, 0 ), /* 385 T_Port */
+ S_ST( 't', 0, 0, 0 ), /* 386 T_Preempt */
+ S_ST( 'r', 0, 0, 0 ), /* 387 T_Prefer */
+ S_ST( 's', 0, 0, 0 ), /* 388 T_Protostats */
+ S_ST( 'w', 1, 0, 634 ), /* 389 T_Pw */
+ S_ST( 'e', 1, 0, 0 ), /* 390 T_Randfile */
+ S_ST( 's', 0, 0, 0 ), /* 391 T_Rawstats */
+ S_ST( 'd', 1, 0, 0 ), /* 392 T_Refid */
+ S_ST( 'y', 0, 0, 0 ), /* 393 T_Requestkey */
+ S_ST( 't', 0, 0, 0 ), /* 394 T_Reset */
+ S_ST( 't', 0, 0, 0 ), /* 395 T_Restrict */
+ S_ST( 'e', 0, 0, 0 ), /* 396 T_Revoke */
+ S_ST( 't', 0, 0, 0 ), /* 397 T_Rlimit */
+ S_ST( 'r', 1, 0, 0 ), /* 398 T_Saveconfigdir */
+ S_ST( 'r', 1, 711, 0 ), /* 399 T_Server */
+ S_ST( 'r', 1, 0, 0 ), /* 400 T_Setvar */
+ S_ST( 'e', 0, 0, 0 ), /* 401 T_Source */
+ S_ST( 'e', 0, 0, 0 ), /* 402 T_Stacksize */
+ S_ST( 's', 0, 0, 0 ), /* 403 T_Statistics */
+ S_ST( 's', 0, 754, 749 ), /* 404 T_Stats */
+ S_ST( 'r', 1, 0, 0 ), /* 405 T_Statsdir */
+ S_ST( 'p', 0, 757, 0 ), /* 406 T_Step */
+ S_ST( 't', 0, 0, 0 ), /* 407 T_Stepout */
+ S_ST( 'm', 0, 0, 0 ), /* 408 T_Stratum */
+ S_ST( 'l', 3, 334, 0 ), /* 409 logfi */
+ S_ST( 's', 0, 764, 0 ), /* 410 T_Sys */
+ S_ST( 's', 0, 0, 0 ), /* 411 T_Sysstats */
+ S_ST( 'k', 0, 0, 0 ), /* 412 T_Tick */
+ S_ST( '1', 0, 0, 0 ), /* 413 T_Time1 */
+ S_ST( '2', 0, 0, 413 ), /* 414 T_Time2 */
+ S_ST( 'r', 0, 0, 414 ), /* 415 T_Timer */
+ S_ST( 's', 0, 0, 0 ), /* 416 T_Timingstats */
+ S_ST( 'r', 0, 0, 0 ), /* 417 T_Tinker */
+ S_ST( 's', 0, 0, 0 ), /* 418 T_Tos */
+ S_ST( 'p', 1, 0, 0 ), /* 419 T_Trap */
+ S_ST( 'e', 0, 0, 0 ), /* 420 T_True */
+ S_ST( 'y', 0, 0, 0 ), /* 421 T_Trustedkey */
+ S_ST( 'l', 0, 0, 0 ), /* 422 T_Ttl */
+ S_ST( 'e', 0, 0, 0 ), /* 423 T_Type */
+ S_ST( 'o', 3, 428, 254 ), /* 424 lo */
+ S_ST( 'g', 1, 0, 0 ), /* 425 T_Unconfig */
+ S_ST( 'r', 1, 0, 0 ), /* 426 T_Unpeer */
+ S_ST( 'n', 0, 0, 0 ), /* 427 T_Version */
+ S_ST( 'p', 3, 433, 0 ), /* 428 loo */
+ S_ST( 'k', 0, 0, 0 ), /* 429 T_Week */
+ S_ST( 'd', 0, 0, 0 ), /* 430 T_Wildcard */
+ S_ST( 'e', 0, 0, 0 ), /* 431 T_Xleave */
+ S_ST( 'r', 0, 0, 0 ), /* 432 T_Year */
+ S_ST( 's', 3, 434, 0 ), /* 433 loop */
+ S_ST( 't', 3, 445, 0 ), /* 434 loops */
+ S_ST( 'e', 0, 0, 0 ), /* 435 T_Simulate */
+ S_ST( 'y', 0, 0, 0 ), /* 436 T_Beep_Delay */
+ S_ST( 'n', 0, 0, 0 ), /* 437 T_Sim_Duration */
+ S_ST( 't', 0, 0, 0 ), /* 438 T_Server_Offset */
+ S_ST( 'n', 0, 0, 0 ), /* 439 T_Duration */
+ S_ST( 't', 0, 0, 0 ), /* 440 T_Freq_Offset */
+ S_ST( 'r', 0, 0, 0 ), /* 441 T_Wander */
+ S_ST( 'r', 0, 0, 0 ), /* 442 T_Jitter */
+ S_ST( 'y', 0, 0, 0 ), /* 443 T_Prop_Delay */
+ S_ST( 'y', 0, 0, 0 ), /* 444 T_Proc_Delay */
+ S_ST( 'a', 3, 446, 0 ), /* 445 loopst */
+ S_ST( 't', 3, 335, 0 ), /* 446 loopsta */
+ S_ST( 'w', 3, 448, 424 ), /* 447 lo */
+ S_ST( 'p', 3, 449, 0 ), /* 448 low */
+ S_ST( 'r', 3, 450, 0 ), /* 449 lowp */
+ S_ST( 'i', 3, 451, 0 ), /* 450 lowpr */
+ S_ST( 'o', 3, 452, 0 ), /* 451 lowpri */
+ S_ST( 't', 3, 453, 0 ), /* 452 lowprio */
+ S_ST( 'r', 3, 454, 0 ), /* 453 lowpriot */
+ S_ST( 'a', 3, 336, 0 ), /* 454 lowpriotr */
+ S_ST( 'm', 3, 536, 237 ), /* 455 */
+ S_ST( 'a', 3, 474, 0 ), /* 456 m */
+ S_ST( 'n', 3, 458, 0 ), /* 457 ma */
+ S_ST( 'y', 3, 459, 0 ), /* 458 man */
+ S_ST( 'c', 3, 460, 0 ), /* 459 many */
+ S_ST( 'a', 3, 461, 0 ), /* 460 manyc */
+ S_ST( 's', 3, 462, 0 ), /* 461 manyca */
+ S_ST( 't', 3, 468, 0 ), /* 462 manycas */
+ S_ST( 'c', 3, 464, 0 ), /* 463 manycast */
+ S_ST( 'l', 3, 465, 0 ), /* 464 manycastc */
+ S_ST( 'i', 3, 466, 0 ), /* 465 manycastcl */
+ S_ST( 'e', 3, 467, 0 ), /* 466 manycastcli */
+ S_ST( 'n', 3, 337, 0 ), /* 467 manycastclie */
+ S_ST( 's', 3, 469, 463 ), /* 468 manycast */
+ S_ST( 'e', 3, 470, 0 ), /* 469 manycasts */
+ S_ST( 'r', 3, 471, 0 ), /* 470 manycastse */
+ S_ST( 'v', 3, 472, 0 ), /* 471 manycastser */
+ S_ST( 'e', 3, 338, 0 ), /* 472 manycastserv */
+ S_ST( 's', 3, 339, 457 ), /* 473 ma */
+ S_ST( 'x', 3, 489, 473 ), /* 474 ma */
+ S_ST( 'a', 3, 476, 0 ), /* 475 max */
+ S_ST( 'g', 3, 340, 0 ), /* 476 maxa */
+ S_ST( 'c', 3, 478, 475 ), /* 477 max */
+ S_ST( 'l', 3, 479, 0 ), /* 478 maxc */
+ S_ST( 'o', 3, 480, 0 ), /* 479 maxcl */
+ S_ST( 'c', 3, 341, 0 ), /* 480 maxclo */
+ S_ST( 'd', 3, 485, 477 ), /* 481 max */
+ S_ST( 'e', 3, 483, 0 ), /* 482 maxd */
+ S_ST( 'p', 3, 484, 0 ), /* 483 maxde */
+ S_ST( 't', 3, 342, 0 ), /* 484 maxdep */
+ S_ST( 'i', 3, 486, 482 ), /* 485 maxd */
+ S_ST( 's', 3, 343, 0 ), /* 486 maxdi */
+ S_ST( 'm', 3, 488, 481 ), /* 487 max */
+ S_ST( 'e', 3, 344, 0 ), /* 488 maxm */
+ S_ST( 'p', 3, 490, 487 ), /* 489 max */
+ S_ST( 'o', 3, 491, 0 ), /* 490 maxp */
+ S_ST( 'l', 3, 345, 0 ), /* 491 maxpo */
+ S_ST( 'd', 3, 493, 456 ), /* 492 m */
+ S_ST( 'n', 3, 494, 0 ), /* 493 md */
+ S_ST( 's', 3, 495, 0 ), /* 494 mdn */
+ S_ST( 't', 3, 496, 0 ), /* 495 mdns */
+ S_ST( 'r', 3, 497, 0 ), /* 496 mdnst */
+ S_ST( 'i', 3, 498, 0 ), /* 497 mdnstr */
+ S_ST( 'e', 3, 346, 0 ), /* 498 mdnstri */
+ S_ST( 'e', 3, 347, 492 ), /* 499 m */
+ S_ST( 'l', 3, 501, 0 ), /* 500 mem */
+ S_ST( 'o', 3, 502, 0 ), /* 501 meml */
+ S_ST( 'c', 3, 348, 0 ), /* 502 memlo */
+ S_ST( 'i', 3, 504, 499 ), /* 503 m */
+ S_ST( 'n', 3, 521, 0 ), /* 504 mi */
+ S_ST( 'c', 3, 506, 0 ), /* 505 min */
+ S_ST( 'l', 3, 507, 0 ), /* 506 minc */
+ S_ST( 'o', 3, 508, 0 ), /* 507 mincl */
+ S_ST( 'c', 3, 349, 0 ), /* 508 minclo */
+ S_ST( 'd', 3, 513, 505 ), /* 509 min */
+ S_ST( 'e', 3, 511, 0 ), /* 510 mind */
+ S_ST( 'p', 3, 512, 0 ), /* 511 minde */
+ S_ST( 't', 3, 350, 0 ), /* 512 mindep */
+ S_ST( 'i', 3, 514, 510 ), /* 513 mind */
+ S_ST( 's', 3, 351, 0 ), /* 514 mindi */
+ S_ST( 'i', 3, 516, 509 ), /* 515 min */
+ S_ST( 'm', 3, 517, 0 ), /* 516 mini */
+ S_ST( 'u', 3, 352, 0 ), /* 517 minim */
+ S_ST( 'p', 3, 519, 515 ), /* 518 min */
+ S_ST( 'o', 3, 520, 0 ), /* 519 minp */
+ S_ST( 'l', 3, 353, 0 ), /* 520 minpo */
+ S_ST( 's', 3, 522, 518 ), /* 521 min */
+ S_ST( 'a', 3, 523, 0 ), /* 522 mins */
+ S_ST( 'n', 3, 354, 0 ), /* 523 minsa */
+ S_ST( 'o', 3, 526, 503 ), /* 524 m */
+ S_ST( 'd', 3, 355, 0 ), /* 525 mo */
+ S_ST( 'n', 3, 530, 525 ), /* 526 mo */
+ S_ST( 'i', 3, 528, 0 ), /* 527 mon */
+ S_ST( 't', 3, 529, 0 ), /* 528 moni */
+ S_ST( 'o', 3, 357, 0 ), /* 529 monit */
+ S_ST( 't', 3, 358, 527 ), /* 530 mon */
+ S_ST( 'r', 3, 359, 524 ), /* 531 m */
+ S_ST( 's', 3, 533, 531 ), /* 532 m */
+ S_ST( 's', 3, 534, 0 ), /* 533 ms */
+ S_ST( 'n', 3, 535, 0 ), /* 534 mss */
+ S_ST( 't', 3, 328, 0 ), /* 535 mssn */
+ S_ST( 'u', 3, 537, 532 ), /* 536 m */
+ S_ST( 'l', 3, 538, 0 ), /* 537 mu */
+ S_ST( 't', 3, 539, 0 ), /* 538 mul */
+ S_ST( 'i', 3, 540, 0 ), /* 539 mult */
+ S_ST( 'c', 3, 541, 0 ), /* 540 multi */
+ S_ST( 'a', 3, 542, 0 ), /* 541 multic */
+ S_ST( 's', 3, 543, 0 ), /* 542 multica */
+ S_ST( 't', 3, 544, 0 ), /* 543 multicas */
+ S_ST( 'c', 3, 545, 0 ), /* 544 multicast */
+ S_ST( 'l', 3, 546, 0 ), /* 545 multicastc */
+ S_ST( 'i', 3, 547, 0 ), /* 546 multicastcl */
+ S_ST( 'e', 3, 548, 0 ), /* 547 multicastcli */
+ S_ST( 'n', 3, 360, 0 ), /* 548 multicastclie */
+ S_ST( 'n', 3, 592, 455 ), /* 549 */
+ S_ST( 'i', 3, 361, 0 ), /* 550 n */
+ S_ST( 'o', 3, 587, 550 ), /* 551 n */
+ S_ST( 'l', 3, 553, 0 ), /* 552 no */
+ S_ST( 'i', 3, 554, 0 ), /* 553 nol */
+ S_ST( 'n', 3, 362, 0 ), /* 554 noli */
+ S_ST( 'm', 3, 560, 552 ), /* 555 no */
+ S_ST( 'o', 3, 557, 0 ), /* 556 nom */
+ S_ST( 'd', 3, 558, 0 ), /* 557 nomo */
+ S_ST( 'i', 3, 559, 0 ), /* 558 nomod */
+ S_ST( 'f', 3, 363, 0 ), /* 559 nomodi */
+ S_ST( 'r', 3, 561, 556 ), /* 560 nom */
+ S_ST( 'u', 3, 562, 0 ), /* 561 nomr */
+ S_ST( 'l', 3, 563, 0 ), /* 562 nomru */
+ S_ST( 'i', 3, 564, 0 ), /* 563 nomrul */
+ S_ST( 's', 3, 364, 0 ), /* 564 nomruli */
+ S_ST( 'n', 3, 566, 555 ), /* 565 no */
+ S_ST( 'v', 3, 567, 365 ), /* 566 non */
+ S_ST( 'o', 3, 568, 0 ), /* 567 nonv */
+ S_ST( 'l', 3, 569, 0 ), /* 568 nonvo */
+ S_ST( 'a', 3, 570, 0 ), /* 569 nonvol */
+ S_ST( 't', 3, 571, 0 ), /* 570 nonvola */
+ S_ST( 'i', 3, 572, 0 ), /* 571 nonvolat */
+ S_ST( 'l', 3, 366, 0 ), /* 572 nonvolati */
+ S_ST( 'p', 3, 574, 565 ), /* 573 no */
+ S_ST( 'e', 3, 575, 0 ), /* 574 nop */
+ S_ST( 'e', 3, 367, 0 ), /* 575 nope */
+ S_ST( 'q', 3, 577, 573 ), /* 576 no */
+ S_ST( 'u', 3, 578, 0 ), /* 577 noq */
+ S_ST( 'e', 3, 579, 0 ), /* 578 noqu */
+ S_ST( 'r', 3, 368, 0 ), /* 579 noque */
+ S_ST( 's', 3, 581, 576 ), /* 580 no */
+ S_ST( 'e', 3, 585, 0 ), /* 581 nos */
+ S_ST( 'l', 3, 583, 0 ), /* 582 nose */
+ S_ST( 'e', 3, 584, 0 ), /* 583 nosel */
+ S_ST( 'c', 3, 369, 0 ), /* 584 nosele */
+ S_ST( 'r', 3, 586, 582 ), /* 585 nose */
+ S_ST( 'v', 3, 370, 0 ), /* 586 noser */
+ S_ST( 't', 3, 588, 580 ), /* 587 no */
+ S_ST( 'r', 3, 590, 0 ), /* 588 not */
+ S_ST( 'a', 3, 371, 0 ), /* 589 notr */
+ S_ST( 'u', 3, 591, 589 ), /* 590 notr */
+ S_ST( 's', 3, 372, 0 ), /* 591 notru */
+ S_ST( 't', 3, 373, 551 ), /* 592 n */
+ S_ST( 'p', 3, 594, 0 ), /* 593 ntp */
+ S_ST( 'o', 3, 595, 0 ), /* 594 ntpp */
+ S_ST( 'r', 3, 374, 0 ), /* 595 ntppo */
+ S_ST( 's', 3, 597, 593 ), /* 596 ntp */
+ S_ST( 'i', 3, 598, 0 ), /* 597 ntps */
+ S_ST( 'g', 3, 599, 0 ), /* 598 ntpsi */
+ S_ST( 'n', 3, 600, 0 ), /* 599 ntpsig */
+ S_ST( 'd', 3, 601, 0 ), /* 600 ntpsign */
+ S_ST( 's', 3, 602, 0 ), /* 601 ntpsignd */
+ S_ST( 'o', 3, 603, 0 ), /* 602 ntpsignds */
+ S_ST( 'c', 3, 604, 0 ), /* 603 ntpsigndso */
+ S_ST( 'k', 3, 605, 0 ), /* 604 ntpsigndsoc */
+ S_ST( 'e', 3, 375, 0 ), /* 605 ntpsigndsock */
+ S_ST( 'o', 3, 607, 549 ), /* 606 */
+ S_ST( 'r', 3, 608, 0 ), /* 607 o */
+ S_ST( 'p', 3, 609, 0 ), /* 608 or */
+ S_ST( 'h', 3, 610, 0 ), /* 609 orp */
+ S_ST( 'a', 3, 376, 0 ), /* 610 orph */
+ S_ST( 'w', 3, 612, 0 ), /* 611 orphan */
+ S_ST( 'a', 3, 613, 0 ), /* 612 orphanw */
+ S_ST( 'i', 3, 377, 0 ), /* 613 orphanwa */
+ S_ST( 'p', 3, 389, 606 ), /* 614 */
+ S_ST( 'a', 3, 616, 0 ), /* 615 p */
+ S_ST( 'n', 3, 617, 0 ), /* 616 pa */
+ S_ST( 'i', 3, 378, 0 ), /* 617 pan */
+ S_ST( 'e', 3, 619, 615 ), /* 618 p */
+ S_ST( 'e', 3, 379, 0 ), /* 619 pe */
+ S_ST( 's', 3, 621, 0 ), /* 620 peer */
+ S_ST( 't', 3, 622, 0 ), /* 621 peers */
+ S_ST( 'a', 3, 623, 0 ), /* 622 peerst */
+ S_ST( 't', 3, 380, 0 ), /* 623 peersta */
+ S_ST( 'h', 3, 625, 618 ), /* 624 p */
+ S_ST( 'o', 3, 626, 0 ), /* 625 ph */
+ S_ST( 'n', 3, 381, 0 ), /* 626 pho */
+ S_ST( 'i', 3, 382, 624 ), /* 627 p */
+ S_ST( 'f', 3, 629, 0 ), /* 628 pid */
+ S_ST( 'i', 3, 630, 0 ), /* 629 pidf */
+ S_ST( 'l', 3, 383, 0 ), /* 630 pidfi */
+ S_ST( 'o', 3, 633, 627 ), /* 631 p */
+ S_ST( 'o', 3, 384, 0 ), /* 632 po */
+ S_ST( 'r', 3, 385, 632 ), /* 633 po */
+ S_ST( 'r', 3, 641, 631 ), /* 634 p */
+ S_ST( 'e', 3, 639, 0 ), /* 635 pr */
+ S_ST( 'e', 3, 637, 0 ), /* 636 pre */
+ S_ST( 'm', 3, 638, 0 ), /* 637 pree */
+ S_ST( 'p', 3, 386, 0 ), /* 638 preem */
+ S_ST( 'f', 3, 640, 636 ), /* 639 pre */
+ S_ST( 'e', 3, 387, 0 ), /* 640 pref */
+ S_ST( 'o', 3, 654, 635 ), /* 641 pr */
+ S_ST( 'c', 3, 643, 0 ), /* 642 pro */
+ S_ST( '_', 3, 644, 0 ), /* 643 proc */
+ S_ST( 'd', 3, 645, 0 ), /* 644 proc_ */
+ S_ST( 'e', 3, 646, 0 ), /* 645 proc_d */
+ S_ST( 'l', 3, 647, 0 ), /* 646 proc_de */
+ S_ST( 'a', 3, 444, 0 ), /* 647 proc_del */
+ S_ST( 'p', 3, 649, 642 ), /* 648 pro */
+ S_ST( '_', 3, 650, 0 ), /* 649 prop */
+ S_ST( 'd', 3, 651, 0 ), /* 650 prop_ */
+ S_ST( 'e', 3, 652, 0 ), /* 651 prop_d */
+ S_ST( 'l', 3, 653, 0 ), /* 652 prop_de */
+ S_ST( 'a', 3, 443, 0 ), /* 653 prop_del */
+ S_ST( 't', 3, 655, 648 ), /* 654 pro */
+ S_ST( 'o', 3, 656, 0 ), /* 655 prot */
+ S_ST( 's', 3, 657, 0 ), /* 656 proto */
+ S_ST( 't', 3, 658, 0 ), /* 657 protos */
+ S_ST( 'a', 3, 659, 0 ), /* 658 protost */
+ S_ST( 't', 3, 388, 0 ), /* 659 protosta */
+ S_ST( 'r', 3, 691, 614 ), /* 660 */
+ S_ST( 'a', 3, 667, 0 ), /* 661 r */
+ S_ST( 'n', 3, 663, 0 ), /* 662 ra */
+ S_ST( 'd', 3, 664, 0 ), /* 663 ran */
+ S_ST( 'f', 3, 665, 0 ), /* 664 rand */
+ S_ST( 'i', 3, 666, 0 ), /* 665 randf */
+ S_ST( 'l', 3, 390, 0 ), /* 666 randfi */
+ S_ST( 'w', 3, 668, 662 ), /* 667 ra */
+ S_ST( 's', 3, 669, 0 ), /* 668 raw */
+ S_ST( 't', 3, 670, 0 ), /* 669 raws */
+ S_ST( 'a', 3, 671, 0 ), /* 670 rawst */
+ S_ST( 't', 3, 391, 0 ), /* 671 rawsta */
+ S_ST( 'e', 3, 688, 661 ), /* 672 r */
+ S_ST( 'f', 3, 674, 0 ), /* 673 re */
+ S_ST( 'i', 3, 392, 0 ), /* 674 ref */
+ S_ST( 'q', 3, 676, 673 ), /* 675 re */
+ S_ST( 'u', 3, 677, 0 ), /* 676 req */
+ S_ST( 'e', 3, 678, 0 ), /* 677 requ */
+ S_ST( 's', 3, 679, 0 ), /* 678 reque */
+ S_ST( 't', 3, 680, 0 ), /* 679 reques */
+ S_ST( 'k', 3, 681, 0 ), /* 680 request */
+ S_ST( 'e', 3, 393, 0 ), /* 681 requestk */
+ S_ST( 's', 3, 684, 675 ), /* 682 re */
+ S_ST( 'e', 3, 394, 0 ), /* 683 res */
+ S_ST( 't', 3, 685, 683 ), /* 684 res */
+ S_ST( 'r', 3, 686, 0 ), /* 685 rest */
+ S_ST( 'i', 3, 687, 0 ), /* 686 restr */
+ S_ST( 'c', 3, 395, 0 ), /* 687 restri */
+ S_ST( 'v', 3, 689, 682 ), /* 688 re */
+ S_ST( 'o', 3, 690, 0 ), /* 689 rev */
+ S_ST( 'k', 3, 396, 0 ), /* 690 revo */
+ S_ST( 'l', 3, 692, 672 ), /* 691 r */
+ S_ST( 'i', 3, 693, 0 ), /* 692 rl */
+ S_ST( 'm', 3, 694, 0 ), /* 693 rli */
+ S_ST( 'i', 3, 397, 0 ), /* 694 rlim */
+ S_ST( 's', 3, 763, 660 ), /* 695 */
+ S_ST( 'a', 3, 697, 0 ), /* 696 s */
+ S_ST( 'v', 3, 698, 0 ), /* 697 sa */
+ S_ST( 'e', 3, 699, 0 ), /* 698 sav */
+ S_ST( 'c', 3, 700, 0 ), /* 699 save */
+ S_ST( 'o', 3, 701, 0 ), /* 700 savec */
+ S_ST( 'n', 3, 702, 0 ), /* 701 saveco */
+ S_ST( 'f', 3, 703, 0 ), /* 702 savecon */
+ S_ST( 'i', 3, 704, 0 ), /* 703 saveconf */
+ S_ST( 'g', 3, 705, 0 ), /* 704 saveconfi */
+ S_ST( 'd', 3, 706, 0 ), /* 705 saveconfig */
+ S_ST( 'i', 3, 398, 0 ), /* 706 saveconfigd */
+ S_ST( 'e', 3, 717, 696 ), /* 707 s */
+ S_ST( 'r', 3, 709, 0 ), /* 708 se */
+ S_ST( 'v', 3, 710, 0 ), /* 709 ser */
+ S_ST( 'e', 3, 399, 0 ), /* 710 serv */
+ S_ST( '_', 3, 712, 0 ), /* 711 server */
+ S_ST( 'o', 3, 713, 0 ), /* 712 server_ */
+ S_ST( 'f', 3, 714, 0 ), /* 713 server_o */
+ S_ST( 'f', 3, 715, 0 ), /* 714 server_of */
+ S_ST( 's', 3, 716, 0 ), /* 715 server_off */
+ S_ST( 'e', 3, 438, 0 ), /* 716 server_offs */
+ S_ST( 't', 3, 718, 708 ), /* 717 se */
+ S_ST( 'v', 3, 719, 0 ), /* 718 set */
+ S_ST( 'a', 3, 400, 0 ), /* 719 setv */
+ S_ST( 'i', 3, 721, 707 ), /* 720 s */
+ S_ST( 'm', 3, 722, 0 ), /* 721 si */
+ S_ST( 'u', 3, 723, 0 ), /* 722 sim */
+ S_ST( 'l', 3, 724, 0 ), /* 723 simu */
+ S_ST( 'a', 3, 725, 0 ), /* 724 simul */
+ S_ST( 't', 3, 726, 0 ), /* 725 simula */
+ S_ST( 'i', 3, 727, 435 ), /* 726 simulat */
+ S_ST( 'o', 3, 728, 0 ), /* 727 simulati */
+ S_ST( 'n', 3, 729, 0 ), /* 728 simulatio */
+ S_ST( '_', 3, 730, 0 ), /* 729 simulation */
+ S_ST( 'd', 3, 731, 0 ), /* 730 simulation_ */
+ S_ST( 'u', 3, 732, 0 ), /* 731 simulation_d */
+ S_ST( 'r', 3, 733, 0 ), /* 732 simulation_du */
+ S_ST( 'a', 3, 734, 0 ), /* 733 simulation_dur */
+ S_ST( 't', 3, 735, 0 ), /* 734 simulation_dura */
+ S_ST( 'i', 3, 736, 0 ), /* 735 simulation_durat */
+ S_ST( 'o', 3, 437, 0 ), /* 736 simulation_durati */
+ S_ST( 'o', 3, 738, 720 ), /* 737 s */
+ S_ST( 'u', 3, 739, 0 ), /* 738 so */
+ S_ST( 'r', 3, 740, 0 ), /* 739 sou */
+ S_ST( 'c', 3, 401, 0 ), /* 740 sour */
+ S_ST( 't', 3, 759, 737 ), /* 741 s */
+ S_ST( 'a', 3, 748, 0 ), /* 742 st */
+ S_ST( 'c', 3, 744, 0 ), /* 743 sta */
+ S_ST( 'k', 3, 745, 0 ), /* 744 stac */
+ S_ST( 's', 3, 746, 0 ), /* 745 stack */
+ S_ST( 'i', 3, 747, 0 ), /* 746 stacks */
+ S_ST( 'z', 3, 402, 0 ), /* 747 stacksi */
+ S_ST( 't', 3, 404, 743 ), /* 748 sta */
+ S_ST( 'i', 3, 750, 0 ), /* 749 stat */
+ S_ST( 's', 3, 751, 0 ), /* 750 stati */
+ S_ST( 't', 3, 752, 0 ), /* 751 statis */
+ S_ST( 'i', 3, 753, 0 ), /* 752 statist */
+ S_ST( 'c', 3, 403, 0 ), /* 753 statisti */
+ S_ST( 'd', 3, 755, 0 ), /* 754 stats */
+ S_ST( 'i', 3, 405, 0 ), /* 755 statsd */
+ S_ST( 'e', 3, 406, 742 ), /* 756 st */
+ S_ST( 'o', 3, 758, 0 ), /* 757 step */
+ S_ST( 'u', 3, 407, 0 ), /* 758 stepo */
+ S_ST( 'r', 3, 760, 756 ), /* 759 st */
+ S_ST( 'a', 3, 761, 0 ), /* 760 str */
+ S_ST( 't', 3, 762, 0 ), /* 761 stra */
+ S_ST( 'u', 3, 408, 0 ), /* 762 strat */
+ S_ST( 'y', 3, 410, 741 ), /* 763 s */
+ S_ST( 's', 3, 765, 0 ), /* 764 sys */
+ S_ST( 't', 3, 766, 0 ), /* 765 syss */
+ S_ST( 'a', 3, 767, 0 ), /* 766 sysst */
+ S_ST( 't', 3, 411, 0 ), /* 767 syssta */
+ S_ST( 't', 3, 794, 695 ), /* 768 */
+ S_ST( 'i', 3, 780, 0 ), /* 769 t */
+ S_ST( 'c', 3, 412, 0 ), /* 770 ti */
+ S_ST( 'm', 3, 773, 770 ), /* 771 ti */
+ S_ST( 'e', 3, 415, 0 ), /* 772 tim */
+ S_ST( 'i', 3, 774, 772 ), /* 773 tim */
+ S_ST( 'n', 3, 775, 0 ), /* 774 timi */
+ S_ST( 'g', 3, 776, 0 ), /* 775 timin */
+ S_ST( 's', 3, 777, 0 ), /* 776 timing */
+ S_ST( 't', 3, 778, 0 ), /* 777 timings */
+ S_ST( 'a', 3, 779, 0 ), /* 778 timingst */
+ S_ST( 't', 3, 416, 0 ), /* 779 timingsta */
+ S_ST( 'n', 3, 781, 771 ), /* 780 ti */
+ S_ST( 'k', 3, 782, 0 ), /* 781 tin */
+ S_ST( 'e', 3, 417, 0 ), /* 782 tink */
+ S_ST( 'o', 3, 418, 769 ), /* 783 t */
+ S_ST( 'r', 3, 786, 783 ), /* 784 t */
+ S_ST( 'a', 3, 419, 0 ), /* 785 tr */
+ S_ST( 'u', 3, 787, 785 ), /* 786 tr */
+ S_ST( 's', 3, 788, 420 ), /* 787 tru */
+ S_ST( 't', 3, 789, 0 ), /* 788 trus */
+ S_ST( 'e', 3, 790, 0 ), /* 789 trust */
+ S_ST( 'd', 3, 791, 0 ), /* 790 truste */
+ S_ST( 'k', 3, 792, 0 ), /* 791 trusted */
+ S_ST( 'e', 3, 421, 0 ), /* 792 trustedk */
+ S_ST( 't', 3, 422, 784 ), /* 793 t */
+ S_ST( 'y', 3, 795, 793 ), /* 794 t */
+ S_ST( 'p', 3, 423, 0 ), /* 795 ty */
+ S_ST( 'u', 3, 797, 768 ), /* 796 */
+ S_ST( 'n', 3, 803, 0 ), /* 797 u */
+ S_ST( 'c', 3, 799, 0 ), /* 798 un */
+ S_ST( 'o', 3, 800, 0 ), /* 799 unc */
+ S_ST( 'n', 3, 801, 0 ), /* 800 unco */
+ S_ST( 'f', 3, 802, 0 ), /* 801 uncon */
+ S_ST( 'i', 3, 425, 0 ), /* 802 unconf */
+ S_ST( 'p', 3, 804, 798 ), /* 803 un */
+ S_ST( 'e', 3, 805, 0 ), /* 804 unp */
+ S_ST( 'e', 3, 426, 0 ), /* 805 unpe */
+ S_ST( 'v', 3, 807, 796 ), /* 806 */
+ S_ST( 'e', 3, 808, 0 ), /* 807 v */
+ S_ST( 'r', 3, 809, 0 ), /* 808 ve */
+ S_ST( 's', 3, 810, 0 ), /* 809 ver */
+ S_ST( 'i', 3, 811, 0 ), /* 810 vers */
+ S_ST( 'o', 3, 427, 0 ), /* 811 versi */
+ S_ST( 'w', 3, 819, 806 ), /* 812 */
+ S_ST( 'a', 3, 814, 0 ), /* 813 w */
+ S_ST( 'n', 3, 815, 0 ), /* 814 wa */
+ S_ST( 'd', 3, 816, 0 ), /* 815 wan */
+ S_ST( 'e', 3, 441, 0 ), /* 816 wand */
+ S_ST( 'e', 3, 818, 813 ), /* 817 w */
+ S_ST( 'e', 3, 429, 0 ), /* 818 we */
+ S_ST( 'i', 3, 820, 817 ), /* 819 w */
+ S_ST( 'l', 3, 821, 0 ), /* 820 wi */
+ S_ST( 'd', 3, 822, 0 ), /* 821 wil */
+ S_ST( 'c', 3, 823, 0 ), /* 822 wild */
+ S_ST( 'a', 3, 824, 0 ), /* 823 wildc */
+ S_ST( 'r', 3, 430, 0 ), /* 824 wildca */
+ S_ST( 'x', 3, 826, 812 ), /* 825 */
+ S_ST( 'l', 3, 827, 0 ), /* 826 x */
+ S_ST( 'e', 3, 828, 0 ), /* 827 xl */
+ S_ST( 'a', 3, 829, 0 ), /* 828 xle */
+ S_ST( 'v', 3, 431, 0 ), /* 829 xlea */
+ S_ST( 'y', 3, 831, 825 ), /* 830 [initial state] */
+ S_ST( 'e', 3, 832, 0 ), /* 831 y */
+ S_ST( 'a', 3, 432, 0 ) /* 832 ye */
};
diff --git a/ntpd/ntp_leapsec.c b/ntpd/ntp_leapsec.c
index 14b8cd99fa56..ec42a9740a07 100644
--- a/ntpd/ntp_leapsec.c
+++ b/ntpd/ntp_leapsec.c
@@ -920,7 +920,8 @@ do_leap_hash(
/* now do the byte twiddle */
for (wi=0; wi < 5; ++wi)
for (di=3; di >= 0; --di) {
- mac->hv[wi*4 + di] = (unsigned char)tmp[wi];
+ mac->hv[wi*4 + di] =
+ (unsigned char)(tmp[wi] & 0x0FF);
tmp[wi] >>= 8;
}
return TRUE;
@@ -972,7 +973,7 @@ leapsec_validate(
do_hash_data(&mdctx, line+2);
else if (!strncmp(line, "#$", 2))
do_hash_data(&mdctx, line+2);
- else if (isdigit(line[0]))
+ else if (isdigit((unsigned char)line[0]))
do_hash_data(&mdctx, line);
}
isc_sha1_final(&mdctx, ldig.hv);
diff --git a/ntpd/ntp_loopfilter.c b/ntpd/ntp_loopfilter.c
index 87db726e417e..82ff1632e518 100644
--- a/ntpd/ntp_loopfilter.c
+++ b/ntpd/ntp_loopfilter.c
@@ -8,6 +8,9 @@
# include <config.h>
#endif
+#ifdef USE_SNPRINTB
+# include <util.h>
+#endif
#include "ntpd.h"
#include "ntp_io.h"
#include "ntp_unixtime.h"
@@ -182,6 +185,21 @@ 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
*/
@@ -189,7 +207,9 @@ static char *file_name(void)
{
if (this_file == NULL) {
(void)strncpy(relative_path, __FILE__, PATH_MAX);
- for (this_file=relative_path; *this_file && ! isalnum(*this_file); this_file++) ;
+ for (this_file=relative_path;
+ *this_file && ! isalnum((unsigned char)*this_file);
+ this_file++) ;
}
return this_file;
}
@@ -663,16 +683,17 @@ local_clock(
* Enable/disable the PPS if requested.
*/
if (hardpps_enable) {
+ ntv.status |= (STA_PPSTIME | STA_PPSFREQ);
if (!(pll_status & STA_PPSTIME))
- report_event(EVNT_KERN,
- NULL, "PPS enabled");
- ntv.status |= STA_PPSTIME | STA_PPSFREQ;
+ sync_status("PPS enabled",
+ pll_status,
+ ntv.status);
} else {
+ ntv.status &= ~(STA_PPSTIME | STA_PPSFREQ);
if (pll_status & STA_PPSTIME)
- report_event(EVNT_KERN,
- NULL, "PPS disabled");
- ntv.status &= ~(STA_PPSTIME |
- STA_PPSFREQ);
+ sync_status("PPS disabled",
+ pll_status,
+ ntv.status);
}
if (sys_leap == LEAP_ADDSECOND)
ntv.status |= STA_INS;
@@ -1142,6 +1163,21 @@ loop_config(
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;
/*
diff --git a/ntpd/ntp_parser.c b/ntpd/ntp_parser.c
index b3f4e4fd8a6f..de3d73cedd65 100644
--- a/ntpd/ntp_parser.c
+++ b/ntpd/ntp_parser.c
@@ -96,7 +96,7 @@
# define ONLY_SIM(a) NULL
#endif
-#line 100 "../../ntpd/ntp_parser.c" /* yacc.c:339 */
+#line 100 "ntp_parser.c" /* yacc.c:339 */
# ifndef YY_NULLPTR
# if defined __cplusplus && 201103L <= __cplusplus
@@ -219,104 +219,105 @@ extern int yydebug;
T_Maxdist = 343,
T_Maxmem = 344,
T_Maxpoll = 345,
- T_Mem = 346,
- T_Memlock = 347,
- T_Minclock = 348,
- T_Mindepth = 349,
- T_Mindist = 350,
- T_Minimum = 351,
- T_Minpoll = 352,
- T_Minsane = 353,
- T_Mode = 354,
- T_Mode7 = 355,
- T_Monitor = 356,
- T_Month = 357,
- T_Mru = 358,
- T_Multicastclient = 359,
- T_Nic = 360,
- T_Nolink = 361,
- T_Nomodify = 362,
- T_Nomrulist = 363,
- T_None = 364,
- T_Nonvolatile = 365,
- T_Nopeer = 366,
- T_Noquery = 367,
- T_Noselect = 368,
- T_Noserve = 369,
- T_Notrap = 370,
- T_Notrust = 371,
- T_Ntp = 372,
- T_Ntpport = 373,
- T_NtpSignDsocket = 374,
- T_Orphan = 375,
- T_Orphanwait = 376,
- T_Panic = 377,
- T_Peer = 378,
- T_Peerstats = 379,
- T_Phone = 380,
- T_Pid = 381,
- T_Pidfile = 382,
- T_Pool = 383,
- T_Port = 384,
- T_Preempt = 385,
- T_Prefer = 386,
- T_Protostats = 387,
- T_Pw = 388,
- T_Randfile = 389,
- T_Rawstats = 390,
- T_Refid = 391,
- T_Requestkey = 392,
- T_Reset = 393,
- T_Restrict = 394,
- T_Revoke = 395,
- T_Rlimit = 396,
- T_Saveconfigdir = 397,
- T_Server = 398,
- T_Setvar = 399,
- T_Source = 400,
- T_Stacksize = 401,
- T_Statistics = 402,
- T_Stats = 403,
- T_Statsdir = 404,
- T_Step = 405,
- T_Stepout = 406,
- T_Stratum = 407,
- T_String = 408,
- T_Sys = 409,
- T_Sysstats = 410,
- T_Tick = 411,
- T_Time1 = 412,
- T_Time2 = 413,
- T_Timer = 414,
- T_Timingstats = 415,
- T_Tinker = 416,
- T_Tos = 417,
- T_Trap = 418,
- T_True = 419,
- T_Trustedkey = 420,
- T_Ttl = 421,
- T_Type = 422,
- T_U_int = 423,
- T_Unconfig = 424,
- T_Unpeer = 425,
- T_Version = 426,
- T_WanderThreshold = 427,
- T_Week = 428,
- T_Wildcard = 429,
- T_Xleave = 430,
- T_Year = 431,
- T_Flag = 432,
- T_EOC = 433,
- T_Simulate = 434,
- T_Beep_Delay = 435,
- T_Sim_Duration = 436,
- T_Server_Offset = 437,
- T_Duration = 438,
- T_Freq_Offset = 439,
- T_Wander = 440,
- T_Jitter = 441,
- T_Prop_Delay = 442,
- T_Proc_Delay = 443
+ T_Mdnstries = 346,
+ T_Mem = 347,
+ T_Memlock = 348,
+ T_Minclock = 349,
+ T_Mindepth = 350,
+ T_Mindist = 351,
+ T_Minimum = 352,
+ T_Minpoll = 353,
+ T_Minsane = 354,
+ T_Mode = 355,
+ T_Mode7 = 356,
+ T_Monitor = 357,
+ T_Month = 358,
+ T_Mru = 359,
+ T_Multicastclient = 360,
+ T_Nic = 361,
+ T_Nolink = 362,
+ T_Nomodify = 363,
+ T_Nomrulist = 364,
+ T_None = 365,
+ T_Nonvolatile = 366,
+ T_Nopeer = 367,
+ T_Noquery = 368,
+ T_Noselect = 369,
+ T_Noserve = 370,
+ T_Notrap = 371,
+ T_Notrust = 372,
+ T_Ntp = 373,
+ T_Ntpport = 374,
+ T_NtpSignDsocket = 375,
+ T_Orphan = 376,
+ T_Orphanwait = 377,
+ T_Panic = 378,
+ T_Peer = 379,
+ T_Peerstats = 380,
+ T_Phone = 381,
+ T_Pid = 382,
+ T_Pidfile = 383,
+ T_Pool = 384,
+ T_Port = 385,
+ T_Preempt = 386,
+ T_Prefer = 387,
+ T_Protostats = 388,
+ T_Pw = 389,
+ T_Randfile = 390,
+ T_Rawstats = 391,
+ T_Refid = 392,
+ T_Requestkey = 393,
+ T_Reset = 394,
+ T_Restrict = 395,
+ T_Revoke = 396,
+ T_Rlimit = 397,
+ T_Saveconfigdir = 398,
+ T_Server = 399,
+ T_Setvar = 400,
+ T_Source = 401,
+ T_Stacksize = 402,
+ T_Statistics = 403,
+ T_Stats = 404,
+ T_Statsdir = 405,
+ T_Step = 406,
+ T_Stepout = 407,
+ T_Stratum = 408,
+ T_String = 409,
+ T_Sys = 410,
+ T_Sysstats = 411,
+ T_Tick = 412,
+ T_Time1 = 413,
+ T_Time2 = 414,
+ T_Timer = 415,
+ T_Timingstats = 416,
+ T_Tinker = 417,
+ T_Tos = 418,
+ T_Trap = 419,
+ T_True = 420,
+ T_Trustedkey = 421,
+ T_Ttl = 422,
+ T_Type = 423,
+ T_U_int = 424,
+ T_Unconfig = 425,
+ T_Unpeer = 426,
+ T_Version = 427,
+ T_WanderThreshold = 428,
+ T_Week = 429,
+ T_Wildcard = 430,
+ T_Xleave = 431,
+ T_Year = 432,
+ T_Flag = 433,
+ T_EOC = 434,
+ T_Simulate = 435,
+ T_Beep_Delay = 436,
+ T_Sim_Duration = 437,
+ T_Server_Offset = 438,
+ T_Duration = 439,
+ T_Freq_Offset = 440,
+ T_Wander = 441,
+ T_Jitter = 442,
+ T_Prop_Delay = 443,
+ T_Proc_Delay = 444
};
#endif
/* Tokens. */
@@ -408,104 +409,105 @@ extern int yydebug;
#define T_Maxdist 343
#define T_Maxmem 344
#define T_Maxpoll 345
-#define T_Mem 346
-#define T_Memlock 347
-#define T_Minclock 348
-#define T_Mindepth 349
-#define T_Mindist 350
-#define T_Minimum 351
-#define T_Minpoll 352
-#define T_Minsane 353
-#define T_Mode 354
-#define T_Mode7 355
-#define T_Monitor 356
-#define T_Month 357
-#define T_Mru 358
-#define T_Multicastclient 359
-#define T_Nic 360
-#define T_Nolink 361
-#define T_Nomodify 362
-#define T_Nomrulist 363
-#define T_None 364
-#define T_Nonvolatile 365
-#define T_Nopeer 366
-#define T_Noquery 367
-#define T_Noselect 368
-#define T_Noserve 369
-#define T_Notrap 370
-#define T_Notrust 371
-#define T_Ntp 372
-#define T_Ntpport 373
-#define T_NtpSignDsocket 374
-#define T_Orphan 375
-#define T_Orphanwait 376
-#define T_Panic 377
-#define T_Peer 378
-#define T_Peerstats 379
-#define T_Phone 380
-#define T_Pid 381
-#define T_Pidfile 382
-#define T_Pool 383
-#define T_Port 384
-#define T_Preempt 385
-#define T_Prefer 386
-#define T_Protostats 387
-#define T_Pw 388
-#define T_Randfile 389
-#define T_Rawstats 390
-#define T_Refid 391
-#define T_Requestkey 392
-#define T_Reset 393
-#define T_Restrict 394
-#define T_Revoke 395
-#define T_Rlimit 396
-#define T_Saveconfigdir 397
-#define T_Server 398
-#define T_Setvar 399
-#define T_Source 400
-#define T_Stacksize 401
-#define T_Statistics 402
-#define T_Stats 403
-#define T_Statsdir 404
-#define T_Step 405
-#define T_Stepout 406
-#define T_Stratum 407
-#define T_String 408
-#define T_Sys 409
-#define T_Sysstats 410
-#define T_Tick 411
-#define T_Time1 412
-#define T_Time2 413
-#define T_Timer 414
-#define T_Timingstats 415
-#define T_Tinker 416
-#define T_Tos 417
-#define T_Trap 418
-#define T_True 419
-#define T_Trustedkey 420
-#define T_Ttl 421
-#define T_Type 422
-#define T_U_int 423
-#define T_Unconfig 424
-#define T_Unpeer 425
-#define T_Version 426
-#define T_WanderThreshold 427
-#define T_Week 428
-#define T_Wildcard 429
-#define T_Xleave 430
-#define T_Year 431
-#define T_Flag 432
-#define T_EOC 433
-#define T_Simulate 434
-#define T_Beep_Delay 435
-#define T_Sim_Duration 436
-#define T_Server_Offset 437
-#define T_Duration 438
-#define T_Freq_Offset 439
-#define T_Wander 440
-#define T_Jitter 441
-#define T_Prop_Delay 442
-#define T_Proc_Delay 443
+#define T_Mdnstries 346
+#define T_Mem 347
+#define T_Memlock 348
+#define T_Minclock 349
+#define T_Mindepth 350
+#define T_Mindist 351
+#define T_Minimum 352
+#define T_Minpoll 353
+#define T_Minsane 354
+#define T_Mode 355
+#define T_Mode7 356
+#define T_Monitor 357
+#define T_Month 358
+#define T_Mru 359
+#define T_Multicastclient 360
+#define T_Nic 361
+#define T_Nolink 362
+#define T_Nomodify 363
+#define T_Nomrulist 364
+#define T_None 365
+#define T_Nonvolatile 366
+#define T_Nopeer 367
+#define T_Noquery 368
+#define T_Noselect 369
+#define T_Noserve 370
+#define T_Notrap 371
+#define T_Notrust 372
+#define T_Ntp 373
+#define T_Ntpport 374
+#define T_NtpSignDsocket 375
+#define T_Orphan 376
+#define T_Orphanwait 377
+#define T_Panic 378
+#define T_Peer 379
+#define T_Peerstats 380
+#define T_Phone 381
+#define T_Pid 382
+#define T_Pidfile 383
+#define T_Pool 384
+#define T_Port 385
+#define T_Preempt 386
+#define T_Prefer 387
+#define T_Protostats 388
+#define T_Pw 389
+#define T_Randfile 390
+#define T_Rawstats 391
+#define T_Refid 392
+#define T_Requestkey 393
+#define T_Reset 394
+#define T_Restrict 395
+#define T_Revoke 396
+#define T_Rlimit 397
+#define T_Saveconfigdir 398
+#define T_Server 399
+#define T_Setvar 400
+#define T_Source 401
+#define T_Stacksize 402
+#define T_Statistics 403
+#define T_Stats 404
+#define T_Statsdir 405
+#define T_Step 406
+#define T_Stepout 407
+#define T_Stratum 408
+#define T_String 409
+#define T_Sys 410
+#define T_Sysstats 411
+#define T_Tick 412
+#define T_Time1 413
+#define T_Time2 414
+#define T_Timer 415
+#define T_Timingstats 416
+#define T_Tinker 417
+#define T_Tos 418
+#define T_Trap 419
+#define T_True 420
+#define T_Trustedkey 421
+#define T_Ttl 422
+#define T_Type 423
+#define T_U_int 424
+#define T_Unconfig 425
+#define T_Unpeer 426
+#define T_Version 427
+#define T_WanderThreshold 428
+#define T_Week 429
+#define T_Wildcard 430
+#define T_Xleave 431
+#define T_Year 432
+#define T_Flag 433
+#define T_EOC 434
+#define T_Simulate 435
+#define T_Beep_Delay 436
+#define T_Sim_Duration 437
+#define T_Server_Offset 438
+#define T_Duration 439
+#define T_Freq_Offset 440
+#define T_Wander 441
+#define T_Jitter 442
+#define T_Prop_Delay 443
+#define T_Proc_Delay 444
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -531,7 +533,7 @@ union YYSTYPE
script_info * Sim_script;
script_info_fifo * Sim_script_fifo;
-#line 535 "../../ntpd/ntp_parser.c" /* yacc.c:355 */
+#line 537 "ntp_parser.c" /* yacc.c:355 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -546,7 +548,7 @@ int yyparse (struct FILE_INFO *ip_file);
/* Copy the second part of user declarations. */
-#line 550 "../../ntpd/ntp_parser.c" /* yacc.c:358 */
+#line 552 "ntp_parser.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -786,23 +788,23 @@ union yyalloc
#endif /* !YYCOPY_NEEDED */
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 203
+#define YYFINAL 205
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 653
+#define YYLAST 634
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 194
+#define YYNTOKENS 195
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 104
/* YYNRULES -- Number of rules. */
-#define YYNRULES 307
+#define YYNRULES 308
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 411
+#define YYNSTATES 413
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 443
+#define YYMAXUTOK 444
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -815,15 +817,15 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 190, 191, 2, 2, 2, 2, 2, 2, 2, 2,
+ 191, 192, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 189, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 190, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 192, 2, 193, 2, 2, 2, 2,
+ 2, 2, 2, 193, 2, 194, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -855,44 +857,44 @@ static const yytype_uint8 yytranslate[] =
155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188
+ 185, 186, 187, 188, 189
};
#if YYDEBUG
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 363, 363, 367, 368, 369, 383, 384, 385, 386,
- 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
- 404, 414, 415, 416, 417, 418, 422, 423, 428, 433,
- 435, 441, 442, 450, 451, 452, 456, 461, 462, 463,
- 464, 465, 466, 467, 468, 472, 474, 479, 480, 481,
- 482, 483, 484, 488, 493, 502, 512, 513, 523, 525,
- 527, 538, 545, 547, 552, 554, 556, 558, 560, 569,
- 575, 576, 584, 586, 598, 599, 600, 601, 602, 611,
- 616, 621, 629, 631, 633, 638, 639, 640, 641, 642,
- 643, 647, 648, 649, 650, 659, 661, 670, 680, 685,
- 693, 694, 695, 696, 697, 698, 699, 700, 705, 706,
- 714, 724, 733, 748, 753, 754, 758, 759, 763, 764,
- 765, 766, 767, 768, 769, 778, 782, 786, 794, 802,
- 810, 825, 840, 853, 854, 862, 863, 864, 865, 866,
- 867, 868, 869, 870, 871, 872, 873, 874, 875, 876,
- 880, 885, 893, 898, 899, 900, 904, 909, 917, 922,
- 923, 924, 925, 926, 927, 928, 929, 937, 947, 952,
- 960, 962, 964, 966, 968, 973, 974, 978, 979, 980,
- 981, 989, 994, 999, 1007, 1012, 1013, 1014, 1023, 1025,
- 1030, 1035, 1043, 1045, 1062, 1063, 1064, 1065, 1066, 1067,
- 1071, 1072, 1080, 1085, 1090, 1098, 1103, 1104, 1105, 1106,
- 1107, 1108, 1109, 1110, 1119, 1120, 1121, 1128, 1135, 1151,
- 1170, 1175, 1177, 1179, 1181, 1183, 1190, 1195, 1196, 1197,
- 1201, 1202, 1203, 1207, 1208, 1212, 1219, 1229, 1238, 1243,
- 1245, 1250, 1251, 1259, 1261, 1269, 1274, 1282, 1307, 1314,
- 1324, 1325, 1329, 1330, 1331, 1332, 1336, 1337, 1338, 1342,
- 1347, 1352, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1376,
- 1381, 1389, 1394, 1402, 1404, 1408, 1413, 1418, 1426, 1431,
- 1439, 1448, 1449, 1453, 1454, 1463, 1481, 1485, 1490, 1498,
- 1503, 1504, 1508, 1513, 1521, 1526, 1531, 1536, 1541, 1549,
- 1554, 1559, 1567, 1572, 1573, 1574, 1575, 1576
+ 0, 364, 364, 368, 369, 370, 384, 385, 386, 387,
+ 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
+ 405, 415, 416, 417, 418, 419, 423, 424, 429, 434,
+ 436, 442, 443, 451, 452, 453, 457, 462, 463, 464,
+ 465, 466, 467, 468, 469, 473, 475, 480, 481, 482,
+ 483, 484, 485, 489, 494, 503, 513, 514, 524, 526,
+ 528, 530, 541, 548, 550, 555, 557, 559, 561, 563,
+ 572, 578, 579, 587, 589, 601, 602, 603, 604, 605,
+ 614, 619, 624, 632, 634, 636, 641, 642, 643, 644,
+ 645, 646, 650, 651, 652, 653, 662, 664, 673, 683,
+ 688, 696, 697, 698, 699, 700, 701, 702, 703, 708,
+ 709, 717, 727, 736, 751, 756, 757, 761, 762, 766,
+ 767, 768, 769, 770, 771, 772, 781, 785, 789, 797,
+ 805, 813, 828, 843, 856, 857, 865, 866, 867, 868,
+ 869, 870, 871, 872, 873, 874, 875, 876, 877, 878,
+ 879, 883, 888, 896, 901, 902, 903, 907, 912, 920,
+ 925, 926, 927, 928, 929, 930, 931, 932, 940, 950,
+ 955, 963, 965, 967, 969, 971, 976, 977, 981, 982,
+ 983, 984, 992, 997, 1002, 1010, 1015, 1016, 1017, 1026,
+ 1028, 1033, 1038, 1046, 1048, 1065, 1066, 1067, 1068, 1069,
+ 1070, 1074, 1075, 1083, 1088, 1093, 1101, 1106, 1107, 1108,
+ 1109, 1110, 1111, 1112, 1113, 1122, 1123, 1124, 1131, 1138,
+ 1154, 1173, 1178, 1180, 1182, 1184, 1186, 1193, 1198, 1199,
+ 1200, 1204, 1205, 1206, 1210, 1211, 1215, 1222, 1232, 1241,
+ 1246, 1248, 1253, 1254, 1262, 1264, 1272, 1277, 1285, 1310,
+ 1317, 1327, 1328, 1332, 1333, 1334, 1335, 1339, 1340, 1341,
+ 1345, 1350, 1355, 1363, 1364, 1365, 1366, 1367, 1368, 1369,
+ 1379, 1384, 1392, 1397, 1405, 1407, 1411, 1416, 1421, 1429,
+ 1434, 1442, 1451, 1452, 1456, 1457, 1466, 1484, 1488, 1493,
+ 1501, 1506, 1507, 1511, 1516, 1524, 1529, 1534, 1539, 1544,
+ 1552, 1557, 1562, 1570, 1575, 1576, 1577, 1578, 1579
};
#endif
@@ -918,26 +920,27 @@ static const char *const yytname[] =
"T_Link", "T_Listen", "T_Logconfig", "T_Logfile", "T_Loopstats",
"T_Lowpriotrap", "T_Manycastclient", "T_Manycastserver", "T_Mask",
"T_Maxage", "T_Maxclock", "T_Maxdepth", "T_Maxdist", "T_Maxmem",
- "T_Maxpoll", "T_Mem", "T_Memlock", "T_Minclock", "T_Mindepth",
- "T_Mindist", "T_Minimum", "T_Minpoll", "T_Minsane", "T_Mode", "T_Mode7",
- "T_Monitor", "T_Month", "T_Mru", "T_Multicastclient", "T_Nic",
- "T_Nolink", "T_Nomodify", "T_Nomrulist", "T_None", "T_Nonvolatile",
- "T_Nopeer", "T_Noquery", "T_Noselect", "T_Noserve", "T_Notrap",
- "T_Notrust", "T_Ntp", "T_Ntpport", "T_NtpSignDsocket", "T_Orphan",
- "T_Orphanwait", "T_Panic", "T_Peer", "T_Peerstats", "T_Phone", "T_Pid",
- "T_Pidfile", "T_Pool", "T_Port", "T_Preempt", "T_Prefer", "T_Protostats",
- "T_Pw", "T_Randfile", "T_Rawstats", "T_Refid", "T_Requestkey", "T_Reset",
- "T_Restrict", "T_Revoke", "T_Rlimit", "T_Saveconfigdir", "T_Server",
- "T_Setvar", "T_Source", "T_Stacksize", "T_Statistics", "T_Stats",
- "T_Statsdir", "T_Step", "T_Stepout", "T_Stratum", "T_String", "T_Sys",
- "T_Sysstats", "T_Tick", "T_Time1", "T_Time2", "T_Timer", "T_Timingstats",
- "T_Tinker", "T_Tos", "T_Trap", "T_True", "T_Trustedkey", "T_Ttl",
- "T_Type", "T_U_int", "T_Unconfig", "T_Unpeer", "T_Version",
- "T_WanderThreshold", "T_Week", "T_Wildcard", "T_Xleave", "T_Year",
- "T_Flag", "T_EOC", "T_Simulate", "T_Beep_Delay", "T_Sim_Duration",
- "T_Server_Offset", "T_Duration", "T_Freq_Offset", "T_Wander", "T_Jitter",
- "T_Prop_Delay", "T_Proc_Delay", "'='", "'('", "')'", "'{'", "'}'",
- "$accept", "configuration", "command_list", "command", "server_command",
+ "T_Maxpoll", "T_Mdnstries", "T_Mem", "T_Memlock", "T_Minclock",
+ "T_Mindepth", "T_Mindist", "T_Minimum", "T_Minpoll", "T_Minsane",
+ "T_Mode", "T_Mode7", "T_Monitor", "T_Month", "T_Mru",
+ "T_Multicastclient", "T_Nic", "T_Nolink", "T_Nomodify", "T_Nomrulist",
+ "T_None", "T_Nonvolatile", "T_Nopeer", "T_Noquery", "T_Noselect",
+ "T_Noserve", "T_Notrap", "T_Notrust", "T_Ntp", "T_Ntpport",
+ "T_NtpSignDsocket", "T_Orphan", "T_Orphanwait", "T_Panic", "T_Peer",
+ "T_Peerstats", "T_Phone", "T_Pid", "T_Pidfile", "T_Pool", "T_Port",
+ "T_Preempt", "T_Prefer", "T_Protostats", "T_Pw", "T_Randfile",
+ "T_Rawstats", "T_Refid", "T_Requestkey", "T_Reset", "T_Restrict",
+ "T_Revoke", "T_Rlimit", "T_Saveconfigdir", "T_Server", "T_Setvar",
+ "T_Source", "T_Stacksize", "T_Statistics", "T_Stats", "T_Statsdir",
+ "T_Step", "T_Stepout", "T_Stratum", "T_String", "T_Sys", "T_Sysstats",
+ "T_Tick", "T_Time1", "T_Time2", "T_Timer", "T_Timingstats", "T_Tinker",
+ "T_Tos", "T_Trap", "T_True", "T_Trustedkey", "T_Ttl", "T_Type",
+ "T_U_int", "T_Unconfig", "T_Unpeer", "T_Version", "T_WanderThreshold",
+ "T_Week", "T_Wildcard", "T_Xleave", "T_Year", "T_Flag", "T_EOC",
+ "T_Simulate", "T_Beep_Delay", "T_Sim_Duration", "T_Server_Offset",
+ "T_Duration", "T_Freq_Offset", "T_Wander", "T_Jitter", "T_Prop_Delay",
+ "T_Proc_Delay", "'='", "'('", "')'", "'{'", "'}'", "$accept",
+ "configuration", "command_list", "command", "server_command",
"client_type", "address", "ip_address", "address_fam", "option_list",
"option", "option_flag", "option_flag_keyword", "option_int",
"option_int_keyword", "option_str", "option_str_keyword",
@@ -994,15 +997,15 @@ static const yytype_uint16 yytoknum[] =
405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
- 435, 436, 437, 438, 439, 440, 441, 442, 443, 61,
- 40, 41, 123, 125
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
+ 61, 40, 41, 123, 125
};
# endif
-#define YYPACT_NINF -178
+#define YYPACT_NINF -180
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-178)))
+ (!!((Yystate) == (-180)))
#define YYTABLE_NINF -7
@@ -1013,48 +1016,48 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- 26, -153, -30, -178, -178, -178, -28, -178, 166, 18,
- -109, 166, -178, 200, -47, -178, -102, -178, -96, -93,
- -178, -89, -178, -178, -47, 330, -47, -178, -178, -85,
- -178, -76, -178, -178, 20, -2, 45, 22, -22, -178,
- -178, -67, 200, -65, -178, 107, 520, -63, -53, 35,
- -178, -178, -178, 46, 203, -94, -178, -47, -178, -47,
- -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
- -21, -55, -54, -178, 4, -178, -178, -77, -178, -178,
- -178, 158, -178, -178, -178, -178, -178, -178, -178, -178,
- 166, -178, -178, -178, -178, -178, -178, 18, -178, 47,
- 84, -178, 166, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, 49, -178, -33, 361, -178,
- -178, -178, -89, -178, -178, -47, -178, -178, -178, -178,
- -178, -178, -178, -178, 330, -178, 58, -47, -178, -178,
- -31, -178, -178, -178, -178, -178, -178, -178, -178, -2,
- -178, -178, 94, 98, -178, -178, 43, -178, -178, -178,
- -178, -22, -178, 68, -57, -178, 200, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, -178, 107, -178, -21,
- -178, -178, -25, -178, -178, -178, -178, -178, -178, -178,
- -178, 520, -178, 75, -21, -178, -178, 86, -53, -178,
- -178, -178, 87, -178, -19, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, 3, -107, -178, -178,
- -178, -178, -178, 88, -178, 7, -178, -178, -178, -178,
- -5, 8, -178, -178, -178, -178, 23, 111, -178, -178,
- 49, -178, -21, -25, -178, -178, -178, -178, -178, -178,
- -178, -178, 482, -178, -178, 482, 482, -63, -178, -178,
- 28, -178, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, -46, 144, -178, -178, -178, 416, -178, -178, -178,
- -178, -178, -178, -178, -178, -127, 5, 10, -178, -178,
- -178, -178, 40, -178, -178, 24, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, 482, 482, -178, 167, -63, 142, -178, 143, -178,
- -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, -178, -178, -51, -178,
- 57, 27, 34, -117, -178, 29, -178, -21, -178, -178,
- -178, -178, -178, -178, -178, -178, -178, 482, -178, -178,
- -178, -178, 32, -178, -178, -178, -47, -178, -178, -178,
- 33, -178, -178, -178, 38, 52, -21, 39, -146, -178,
- 59, -21, -178, -178, -178, 50, -44, -178, -178, -178,
- -178, -178, 60, 63, 41, -178, 71, -178, -21, -178,
- -178
+ 26, -147, -9, -180, -180, -180, -6, -180, 222, 9,
+ -96, 222, -180, 276, -41, -180, -93, -180, -90, -86,
+ -180, -84, -180, -180, -41, 0, 443, -41, -180, -180,
+ -83, -180, -82, -180, -180, 20, 27, -20, 21, -19,
+ -180, -180, -68, 276, -66, -180, 221, 328, -65, -55,
+ 38, -180, -180, -180, 99, 188, -69, -180, -41, -180,
+ -41, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -180, -3, -40, -39, -180, -4, -180, -180, -77, -180,
+ -180, -180, 254, -180, -180, -180, -180, -180, -180, -180,
+ -180, 222, -180, -180, -180, -180, -180, -180, 9, -180,
+ 47, 90, -180, 222, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, 98, -180, -31, 347,
+ -180, -180, -180, -84, -180, -180, -41, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, 443, -180, 61, -41,
+ -180, -180, -30, -180, -180, -180, -180, -180, -180, -180,
+ -180, 27, -180, -180, 102, 106, -180, -180, 55, -180,
+ -180, -180, -180, -19, -180, 87, -42, -180, 276, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, 221,
+ -180, -3, -180, -180, -27, -180, -180, -180, -180, -180,
+ -180, -180, -180, 328, -180, 91, -3, -180, -180, 93,
+ -55, -180, -180, -180, 96, -180, -21, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, 3, -144,
+ -180, -180, -180, -180, -180, 100, -180, -5, -180, -180,
+ -180, -180, -23, 5, -180, -180, -180, -180, 7, 103,
+ -180, -180, 98, -180, -3, -27, -180, -180, -180, -180,
+ -180, -180, -180, -180, 462, -180, -180, 462, 462, -65,
+ -180, -180, 8, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -47, 138, -180, -180, -180, 425, -180,
+ -180, -180, -180, -180, -180, -180, -180, -105, -2, -15,
+ -180, -180, -180, -180, 25, -180, -180, 17, -180, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, 462, 462, -180, 154, -65, 124, -180,
+ 125, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -51, -180, 32, 10, 16, -116, -180, 6, -180, -3,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, 462,
+ -180, -180, -180, -180, 15, -180, -180, -180, -41, -180,
+ -180, -180, 18, -180, -180, -180, 22, 24, -3, 23,
+ -169, -180, 36, -3, -180, -180, -180, 29, -94, -180,
+ -180, -180, -180, -180, 89, 37, 30, -180, 40, -180,
+ -3, -180, -180
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -1062,80 +1065,80 @@ static const yytype_int16 yypact[] =
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 0, 0, 0, 24, 58, 227, 0, 70, 0, 0,
- 237, 0, 220, 0, 0, 230, 0, 250, 0, 0,
- 231, 0, 233, 25, 0, 0, 0, 251, 228, 0,
- 23, 0, 232, 22, 0, 0, 0, 0, 0, 234,
- 21, 0, 0, 0, 229, 0, 0, 0, 0, 0,
- 56, 57, 286, 0, 2, 0, 7, 0, 8, 0,
- 9, 10, 13, 11, 12, 14, 15, 16, 17, 18,
- 0, 0, 0, 214, 0, 215, 19, 0, 5, 61,
- 62, 63, 194, 195, 196, 197, 200, 198, 199, 201,
- 189, 191, 192, 193, 153, 154, 155, 125, 151, 0,
- 235, 221, 188, 100, 101, 102, 103, 107, 104, 105,
- 106, 108, 29, 30, 28, 0, 26, 0, 6, 64,
- 65, 247, 222, 246, 279, 59, 159, 160, 161, 162,
- 163, 164, 165, 166, 126, 157, 0, 60, 69, 277,
- 223, 66, 262, 263, 264, 265, 266, 267, 268, 259,
- 261, 133, 29, 30, 133, 133, 26, 67, 187, 185,
- 186, 181, 183, 0, 0, 224, 95, 99, 96, 206,
- 207, 208, 209, 210, 211, 212, 213, 202, 204, 0,
- 90, 85, 0, 86, 94, 92, 93, 91, 89, 87,
- 88, 79, 81, 0, 0, 241, 273, 0, 68, 272,
- 274, 270, 226, 1, 0, 4, 31, 55, 284, 283,
- 216, 217, 218, 258, 257, 256, 0, 0, 78, 74,
- 75, 76, 77, 0, 71, 0, 190, 150, 152, 236,
- 97, 0, 177, 178, 179, 180, 0, 0, 175, 176,
- 167, 169, 0, 0, 27, 219, 245, 278, 156, 158,
- 276, 260, 129, 133, 133, 132, 127, 0, 182, 184,
- 0, 98, 203, 205, 282, 280, 281, 84, 80, 82,
- 83, 225, 0, 271, 269, 3, 20, 252, 253, 254,
- 249, 255, 248, 290, 291, 0, 0, 0, 73, 72,
- 117, 116, 0, 114, 115, 0, 109, 112, 113, 173,
- 174, 172, 168, 170, 171, 135, 136, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 134, 130, 131, 133, 240, 0, 0, 242, 0, 37,
- 38, 39, 54, 47, 49, 48, 51, 40, 41, 42,
- 43, 50, 52, 44, 32, 33, 36, 34, 0, 35,
- 0, 0, 0, 0, 293, 0, 288, 0, 110, 124,
- 120, 122, 118, 119, 121, 123, 111, 128, 239, 238,
- 244, 243, 0, 45, 46, 53, 0, 287, 285, 292,
- 0, 289, 275, 296, 0, 0, 0, 0, 0, 298,
- 0, 0, 294, 297, 295, 0, 0, 303, 304, 305,
- 306, 307, 0, 0, 0, 299, 0, 301, 0, 300,
- 302
+ 0, 0, 0, 24, 58, 228, 0, 71, 0, 0,
+ 238, 0, 221, 0, 0, 231, 0, 251, 0, 0,
+ 232, 0, 234, 25, 0, 0, 0, 0, 252, 229,
+ 0, 23, 0, 233, 22, 0, 0, 0, 0, 0,
+ 235, 21, 0, 0, 0, 230, 0, 0, 0, 0,
+ 0, 56, 57, 287, 0, 2, 0, 7, 0, 8,
+ 0, 9, 10, 13, 11, 12, 14, 15, 16, 17,
+ 18, 0, 0, 0, 215, 0, 216, 19, 0, 5,
+ 62, 63, 64, 195, 196, 197, 198, 201, 199, 200,
+ 202, 190, 192, 193, 194, 154, 155, 156, 126, 152,
+ 0, 236, 222, 189, 101, 102, 103, 104, 108, 105,
+ 106, 107, 109, 29, 30, 28, 0, 26, 0, 6,
+ 65, 66, 248, 223, 247, 280, 59, 61, 160, 161,
+ 162, 163, 164, 165, 166, 167, 127, 158, 0, 60,
+ 70, 278, 224, 67, 263, 264, 265, 266, 267, 268,
+ 269, 260, 262, 134, 29, 30, 134, 134, 26, 68,
+ 188, 186, 187, 182, 184, 0, 0, 225, 96, 100,
+ 97, 207, 208, 209, 210, 211, 212, 213, 214, 203,
+ 205, 0, 91, 86, 0, 87, 95, 93, 94, 92,
+ 90, 88, 89, 80, 82, 0, 0, 242, 274, 0,
+ 69, 273, 275, 271, 227, 1, 0, 4, 31, 55,
+ 285, 284, 217, 218, 219, 259, 258, 257, 0, 0,
+ 79, 75, 76, 77, 78, 0, 72, 0, 191, 151,
+ 153, 237, 98, 0, 178, 179, 180, 181, 0, 0,
+ 176, 177, 168, 170, 0, 0, 27, 220, 246, 279,
+ 157, 159, 277, 261, 130, 134, 134, 133, 128, 0,
+ 183, 185, 0, 99, 204, 206, 283, 281, 282, 85,
+ 81, 83, 84, 226, 0, 272, 270, 3, 20, 253,
+ 254, 255, 250, 256, 249, 291, 292, 0, 0, 0,
+ 74, 73, 118, 117, 0, 115, 116, 0, 110, 113,
+ 114, 174, 175, 173, 169, 171, 172, 136, 137, 138,
+ 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
+ 149, 150, 135, 131, 132, 134, 241, 0, 0, 243,
+ 0, 37, 38, 39, 54, 47, 49, 48, 51, 40,
+ 41, 42, 43, 50, 52, 44, 32, 33, 36, 34,
+ 0, 35, 0, 0, 0, 0, 294, 0, 289, 0,
+ 111, 125, 121, 123, 119, 120, 122, 124, 112, 129,
+ 240, 239, 245, 244, 0, 45, 46, 53, 0, 288,
+ 286, 293, 0, 290, 276, 297, 0, 0, 0, 0,
+ 0, 299, 0, 0, 295, 298, 296, 0, 0, 304,
+ 305, 306, 307, 308, 0, 0, 0, 300, 0, 302,
+ 0, 301, 303
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -178, -178, -178, -40, -178, -178, -14, -35, -178, -178,
- -178, -178, -178, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, -178, -178, 64, -178, -178, -178,
- -178, -32, -178, -178, -178, -178, -178, -178, -151, -178,
- -178, 141, -178, -178, 116, -178, -178, -178, 11, -178,
- -178, -178, -178, 93, -178, -178, 248, -69, -178, -178,
- -178, -178, 83, -178, -178, -178, -178, -178, -178, -178,
- -178, -178, -178, -178, 139, -178, -178, -178, -178, -178,
- -178, 119, -178, -178, 67, -178, -178, 243, 36, -177,
- -178, -178, -178, -15, -178, -178, -82, -178, -178, -178,
- -116, -178, -126, -178
+ -180, -180, -180, -37, -180, -180, -14, -36, -180, -180,
+ -180, -180, -180, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -180, -180, -180, 33, -180, -180, -180,
+ -180, -33, -180, -180, -180, -180, -180, -180, -153, -180,
+ -180, 131, -180, -180, 97, -180, -180, -180, -10, -180,
+ -180, -180, -180, 73, -180, -180, 227, -72, -180, -180,
+ -180, -180, 60, -180, -180, -180, -180, -180, -180, -180,
+ -180, -180, -180, -180, 119, -180, -180, -180, -180, -180,
+ -180, 92, -180, -180, 44, -180, -180, 218, 1, -179,
+ -180, -180, -180, -34, -180, -180, -107, -180, -180, -180,
+ -140, -180, -150, -180
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 53, 54, 55, 56, 57, 124, 116, 117, 276,
- 344, 345, 346, 347, 348, 349, 350, 58, 59, 60,
- 61, 81, 224, 225, 62, 191, 192, 193, 194, 63,
- 166, 111, 230, 296, 297, 298, 366, 64, 252, 320,
- 97, 98, 99, 134, 135, 136, 65, 240, 241, 242,
- 243, 66, 161, 162, 163, 67, 90, 91, 92, 93,
- 68, 177, 178, 179, 69, 70, 71, 72, 101, 165,
- 369, 271, 327, 122, 123, 73, 74, 282, 216, 75,
- 149, 150, 202, 198, 199, 200, 140, 125, 267, 210,
- 76, 77, 285, 286, 287, 353, 354, 385, 355, 388,
- 389, 402, 403, 404
+ -1, 54, 55, 56, 57, 58, 125, 117, 118, 278,
+ 346, 347, 348, 349, 350, 351, 352, 59, 60, 61,
+ 62, 82, 226, 227, 63, 193, 194, 195, 196, 64,
+ 168, 112, 232, 298, 299, 300, 368, 65, 254, 322,
+ 98, 99, 100, 136, 137, 138, 66, 242, 243, 244,
+ 245, 67, 163, 164, 165, 68, 91, 92, 93, 94,
+ 69, 179, 180, 181, 70, 71, 72, 73, 102, 167,
+ 371, 273, 329, 123, 124, 74, 75, 284, 218, 76,
+ 151, 152, 204, 200, 201, 202, 142, 126, 269, 212,
+ 77, 78, 287, 288, 289, 355, 356, 387, 357, 390,
+ 391, 404, 405, 406
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -1143,142 +1146,138 @@ static const yytype_int16 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 115, 156, 263, 255, 256, 142, 143, 196, 277, 373,
- 167, 208, 195, 264, 204, 325, 351, 270, 112, 158,
- 113, 226, 155, 144, 290, 78, 351, 1, 359, 94,
- 79, 291, 80, 226, 292, 265, 2, 387, 213, 209,
- 3, 4, 5, 206, 100, 207, 203, 392, 6, 7,
- 360, 118, 231, 283, 284, 8, 9, 119, 214, 10,
- 120, 145, 11, 12, 121, 303, 13, 278, 138, 279,
- 159, 293, 151, 283, 284, 14, 378, 139, 245, 15,
- 141, 215, 157, 326, 205, 16, 164, 17, 168, 146,
- 114, 232, 233, 234, 235, 201, 18, 19, 211, 212,
- 20, 294, 321, 322, 21, 22, 114, 228, 23, 24,
- 152, 247, 153, 169, 95, 217, 229, 374, 249, 96,
- 244, 253, 250, 247, 160, 254, 361, 257, 259, 25,
- 26, 27, 260, 362, 261, 269, 28, 197, 170, 266,
- 397, 398, 399, 400, 401, 29, 272, 274, 288, 30,
- 363, 31, 147, 32, 33, 171, 280, 148, 172, 275,
- 289, 299, 295, 34, 35, 36, 37, 38, 39, 40,
- 41, 301, 367, 42, 82, 43, 300, 281, 83, 328,
- 381, 324, 44, 356, 84, 236, 218, 45, 46, 47,
- 154, 48, 49, 358, 368, 50, 51, 364, 114, 357,
- 365, 237, 371, 372, -6, 52, 238, 239, 219, 390,
- 375, 220, 377, 2, 395, 384, 376, 3, 4, 5,
- 103, 380, 323, 382, 104, 6, 7, 386, 391, 173,
- 408, 410, 8, 9, 85, 387, 10, 394, 227, 11,
- 12, 407, 396, 13, 397, 398, 399, 400, 401, 409,
- 248, 302, 14, 405, 258, 268, 15, 174, 175, 102,
- 262, 246, 16, 176, 17, 273, 86, 87, 251, 137,
- 352, 379, 393, 18, 19, 0, 406, 20, 0, 304,
- 105, 21, 22, 88, 0, 23, 24, 0, 0, 0,
- 370, 221, 222, 0, 0, 0, 0, 0, 223, 0,
- 0, 0, 0, 0, 0, 0, 25, 26, 27, 0,
- 0, 0, 0, 28, 89, 0, 0, 0, 0, 0,
- 0, 0, 29, 0, 106, 0, 30, 0, 31, 0,
- 32, 33, 107, 0, 0, 108, 0, 0, 0, 0,
- 34, 35, 36, 37, 38, 39, 40, 41, 0, 0,
- 42, 0, 43, 0, 0, 109, 0, 0, 0, 44,
- 110, 0, 383, 0, 45, 46, 47, 0, 48, 49,
- 0, 2, 50, 51, 0, 3, 4, 5, 0, 0,
- 0, -6, 52, 6, 7, 126, 127, 128, 129, 0,
- 8, 9, 0, 0, 10, 0, 0, 11, 12, 0,
- 0, 13, 0, 0, 0, 0, 0, 0, 0, 0,
- 14, 0, 0, 0, 15, 130, 0, 131, 0, 132,
- 16, 0, 17, 0, 133, 329, 0, 0, 0, 0,
- 0, 18, 19, 330, 0, 20, 0, 0, 0, 21,
- 22, 0, 0, 23, 24, 0, 0, 0, 0, 0,
+ 116, 158, 265, 257, 258, 198, 292, 153, 279, 375,
+ 169, 266, 197, 293, 327, 389, 294, 272, 206, 228,
+ 95, 361, 160, 157, 113, 394, 114, 1, 353, 210,
+ 215, 228, 79, 267, 144, 145, 2, 285, 286, 353,
+ 3, 4, 5, 362, 208, 154, 209, 155, 6, 7,
+ 216, 80, 146, 295, 81, 8, 9, 211, 101, 10,
+ 127, 119, 11, 12, 120, 305, 13, 280, 121, 281,
+ 122, 140, 141, 217, 161, 14, 285, 286, 380, 15,
+ 143, 159, 247, 328, 296, 16, 166, 17, 170, 115,
+ 147, 399, 400, 401, 402, 403, 18, 19, 203, 205,
+ 20, 233, 323, 324, 21, 22, 96, 230, 23, 24,
+ 207, 97, 249, 115, 213, 214, 219, 25, 376, 148,
+ 363, 251, 231, 246, 252, 249, 156, 364, 162, 255,
+ 26, 27, 28, 256, 115, 263, 199, 29, 268, 259,
+ 234, 235, 236, 237, 365, 297, 30, 261, 262, 291,
+ 31, 271, 32, 274, 33, 34, 276, 282, 277, 301,
+ 290, 302, 326, 303, 35, 36, 37, 38, 39, 40,
+ 41, 42, 369, 330, 43, 359, 44, 358, 283, 360,
+ 383, 370, 149, 45, 373, 374, 377, 150, 46, 47,
+ 48, 366, 49, 50, 367, 379, 51, 52, 2, 382,
+ 378, 386, 3, 4, 5, -6, 53, 384, 389, 392,
+ 6, 7, 388, 393, 397, 396, 409, 8, 9, 411,
+ 410, 10, 398, 325, 11, 12, 270, 171, 13, 229,
+ 83, 412, 304, 250, 84, 238, 260, 14, 103, 264,
+ 85, 15, 248, 253, 275, 139, 306, 16, 381, 17,
+ 395, 239, 172, 354, 408, 0, 240, 241, 18, 19,
+ 0, 0, 20, 0, 0, 0, 21, 22, 0, 173,
+ 23, 24, 174, 0, 399, 400, 401, 402, 403, 25,
+ 0, 0, 220, 407, 0, 0, 0, 0, 0, 0,
+ 86, 372, 26, 27, 28, 0, 104, 0, 0, 29,
+ 105, 0, 0, 0, 221, 0, 0, 222, 30, 0,
+ 0, 0, 31, 0, 32, 0, 33, 34, 0, 0,
+ 0, 0, 0, 87, 88, 0, 35, 36, 37, 38,
+ 39, 40, 41, 42, 0, 0, 43, 0, 44, 0,
+ 89, 182, 0, 0, 175, 45, 0, 183, 0, 184,
+ 46, 47, 48, 0, 49, 50, 106, 2, 51, 52,
+ 0, 3, 4, 5, 385, 0, 0, -6, 53, 6,
+ 7, 90, 176, 177, 0, 185, 8, 9, 178, 0,
+ 10, 0, 0, 11, 12, 0, 0, 13, 223, 224,
+ 0, 0, 0, 0, 0, 225, 14, 0, 0, 0,
+ 15, 107, 0, 0, 0, 0, 16, 0, 17, 108,
+ 0, 0, 109, 0, 186, 0, 187, 18, 19, 0,
+ 0, 20, 188, 0, 189, 21, 22, 190, 0, 23,
+ 24, 0, 110, 0, 331, 0, 0, 111, 25, 0,
+ 0, 0, 332, 0, 0, 0, 0, 0, 0, 191,
+ 192, 26, 27, 28, 0, 0, 0, 0, 29, 0,
+ 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
+ 0, 31, 0, 32, 0, 33, 34, 333, 334, 0,
+ 0, 0, 0, 0, 0, 35, 36, 37, 38, 39,
+ 40, 41, 42, 0, 335, 43, 0, 44, 128, 129,
+ 130, 131, 0, 0, 45, 0, 0, 0, 307, 46,
+ 47, 48, 0, 49, 50, 336, 308, 51, 52, 0,
+ 0, 0, 0, 337, 0, 338, 0, 53, 132, 0,
+ 133, 0, 134, 0, 309, 310, 0, 311, 135, 339,
+ 0, 0, 0, 312, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 340, 341, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 25, 26, 27, 0, 331, 332,
- 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
- 29, 0, 0, 0, 30, 333, 31, 0, 32, 33,
- 0, 0, 0, 0, 0, 0, 0, 0, 34, 35,
- 36, 37, 38, 39, 40, 41, 334, 0, 42, 0,
- 43, 0, 0, 335, 0, 336, 0, 44, 0, 0,
- 0, 0, 45, 46, 47, 0, 48, 49, 305, 337,
- 50, 51, 0, 180, 0, 0, 306, 0, 0, 181,
- 52, 182, 0, 0, 0, 0, 338, 339, 0, 0,
- 0, 0, 0, 0, 307, 308, 0, 309, 0, 0,
- 0, 0, 0, 310, 0, 0, 0, 183, 0, 0,
+ 313, 314, 0, 0, 315, 316, 0, 317, 318, 319,
+ 0, 320, 0, 0, 0, 0, 0, 0, 0, 0,
+ 342, 0, 343, 0, 0, 0, 0, 344, 0, 0,
+ 0, 345, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 340, 0, 341, 0, 0, 0, 0, 342, 0, 311,
- 312, 343, 0, 313, 314, 0, 315, 316, 317, 0,
- 318, 0, 0, 0, 0, 0, 184, 0, 185, 0,
- 0, 0, 0, 186, 0, 187, 0, 0, 188, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 189, 190, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 319
+ 0, 0, 0, 0, 321
};
static const yytype_int16 yycheck[] =
{
- 14, 36, 179, 154, 155, 7, 8, 60, 5, 60,
- 42, 32, 47, 38, 54, 61, 143, 194, 65, 41,
- 67, 90, 36, 25, 29, 178, 143, 1, 4, 11,
- 60, 36, 60, 102, 39, 60, 10, 183, 34, 60,
- 14, 15, 16, 57, 153, 59, 0, 193, 22, 23,
- 26, 153, 3, 180, 181, 29, 30, 153, 54, 33,
- 153, 63, 36, 37, 153, 242, 40, 64, 153, 66,
- 92, 76, 27, 180, 181, 49, 193, 153, 118, 53,
- 60, 77, 60, 129, 178, 59, 153, 61, 153, 91,
- 153, 42, 43, 44, 45, 60, 70, 71, 153, 153,
- 74, 106, 253, 254, 78, 79, 153, 60, 82, 83,
- 65, 125, 67, 6, 96, 192, 32, 168, 60, 101,
- 153, 27, 153, 137, 146, 27, 102, 84, 60, 103,
- 104, 105, 189, 109, 166, 60, 110, 190, 31, 164,
- 184, 185, 186, 187, 188, 119, 60, 60, 60, 123,
- 126, 125, 154, 127, 128, 48, 153, 159, 51, 178,
- 153, 153, 167, 137, 138, 139, 140, 141, 142, 143,
- 144, 60, 323, 147, 8, 149, 153, 174, 12, 35,
- 357, 153, 156, 178, 18, 136, 28, 161, 162, 163,
- 145, 165, 166, 153, 27, 169, 170, 173, 153, 189,
- 176, 152, 60, 60, 178, 179, 157, 158, 50, 386,
- 153, 53, 178, 10, 391, 182, 189, 14, 15, 16,
- 20, 192, 257, 191, 24, 22, 23, 189, 189, 122,
- 189, 408, 29, 30, 68, 183, 33, 178, 97, 36,
- 37, 178, 192, 40, 184, 185, 186, 187, 188, 178,
- 134, 240, 49, 193, 161, 191, 53, 150, 151, 11,
- 177, 122, 59, 156, 61, 198, 100, 101, 149, 26,
- 285, 353, 388, 70, 71, -1, 402, 74, -1, 243,
- 80, 78, 79, 117, -1, 82, 83, -1, -1, -1,
- 325, 133, 134, -1, -1, -1, -1, -1, 140, -1,
- -1, -1, -1, -1, -1, -1, 103, 104, 105, -1,
- -1, -1, -1, 110, 148, -1, -1, -1, -1, -1,
- -1, -1, 119, -1, 124, -1, 123, -1, 125, -1,
- 127, 128, 132, -1, -1, 135, -1, -1, -1, -1,
- 137, 138, 139, 140, 141, 142, 143, 144, -1, -1,
- 147, -1, 149, -1, -1, 155, -1, -1, -1, 156,
- 160, -1, 376, -1, 161, 162, 163, -1, 165, 166,
- -1, 10, 169, 170, -1, 14, 15, 16, -1, -1,
- -1, 178, 179, 22, 23, 55, 56, 57, 58, -1,
- 29, 30, -1, -1, 33, -1, -1, 36, 37, -1,
- -1, 40, -1, -1, -1, -1, -1, -1, -1, -1,
- 49, -1, -1, -1, 53, 85, -1, 87, -1, 89,
- 59, -1, 61, -1, 94, 9, -1, -1, -1, -1,
- -1, 70, 71, 17, -1, 74, -1, -1, -1, 78,
- 79, -1, -1, 82, 83, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 103, 104, 105, -1, 52, 53,
- -1, 110, -1, -1, -1, -1, -1, -1, -1, -1,
- 119, -1, -1, -1, 123, 69, 125, -1, 127, 128,
- -1, -1, -1, -1, -1, -1, -1, -1, 137, 138,
- 139, 140, 141, 142, 143, 144, 90, -1, 147, -1,
- 149, -1, -1, 97, -1, 99, -1, 156, -1, -1,
- -1, -1, 161, 162, 163, -1, 165, 166, 46, 113,
- 169, 170, -1, 13, -1, -1, 54, -1, -1, 19,
- 179, 21, -1, -1, -1, -1, 130, 131, -1, -1,
- -1, -1, -1, -1, 72, 73, -1, 75, -1, -1,
- -1, -1, -1, 81, -1, -1, -1, 47, -1, -1,
+ 14, 37, 181, 156, 157, 60, 29, 27, 5, 60,
+ 43, 38, 48, 36, 61, 184, 39, 196, 55, 91,
+ 11, 4, 41, 37, 65, 194, 67, 1, 144, 32,
+ 34, 103, 179, 60, 7, 8, 10, 181, 182, 144,
+ 14, 15, 16, 26, 58, 65, 60, 67, 22, 23,
+ 54, 60, 25, 76, 60, 29, 30, 60, 154, 33,
+ 60, 154, 36, 37, 154, 244, 40, 64, 154, 66,
+ 154, 154, 154, 77, 93, 49, 181, 182, 194, 53,
+ 60, 60, 119, 130, 107, 59, 154, 61, 154, 154,
+ 63, 185, 186, 187, 188, 189, 70, 71, 60, 0,
+ 74, 3, 255, 256, 78, 79, 97, 60, 82, 83,
+ 179, 102, 126, 154, 154, 154, 193, 91, 169, 92,
+ 103, 60, 32, 154, 154, 139, 146, 110, 147, 27,
+ 104, 105, 106, 27, 154, 168, 191, 111, 165, 84,
+ 42, 43, 44, 45, 127, 168, 120, 60, 190, 154,
+ 124, 60, 126, 60, 128, 129, 60, 154, 179, 154,
+ 60, 154, 154, 60, 138, 139, 140, 141, 142, 143,
+ 144, 145, 325, 35, 148, 190, 150, 179, 175, 154,
+ 359, 27, 155, 157, 60, 60, 154, 160, 162, 163,
+ 164, 174, 166, 167, 177, 179, 170, 171, 10, 193,
+ 190, 183, 14, 15, 16, 179, 180, 192, 184, 388,
+ 22, 23, 190, 190, 393, 179, 179, 29, 30, 179,
+ 190, 33, 193, 259, 36, 37, 193, 6, 40, 98,
+ 8, 410, 242, 136, 12, 137, 163, 49, 11, 179,
+ 18, 53, 123, 151, 200, 27, 245, 59, 355, 61,
+ 390, 153, 31, 287, 404, -1, 158, 159, 70, 71,
+ -1, -1, 74, -1, -1, -1, 78, 79, -1, 48,
+ 82, 83, 51, -1, 185, 186, 187, 188, 189, 91,
+ -1, -1, 28, 194, -1, -1, -1, -1, -1, -1,
+ 68, 327, 104, 105, 106, -1, 20, -1, -1, 111,
+ 24, -1, -1, -1, 50, -1, -1, 53, 120, -1,
+ -1, -1, 124, -1, 126, -1, 128, 129, -1, -1,
+ -1, -1, -1, 101, 102, -1, 138, 139, 140, 141,
+ 142, 143, 144, 145, -1, -1, 148, -1, 150, -1,
+ 118, 13, -1, -1, 123, 157, -1, 19, -1, 21,
+ 162, 163, 164, -1, 166, 167, 80, 10, 170, 171,
+ -1, 14, 15, 16, 378, -1, -1, 179, 180, 22,
+ 23, 149, 151, 152, -1, 47, 29, 30, 157, -1,
+ 33, -1, -1, 36, 37, -1, -1, 40, 134, 135,
+ -1, -1, -1, -1, -1, 141, 49, -1, -1, -1,
+ 53, 125, -1, -1, -1, -1, 59, -1, 61, 133,
+ -1, -1, 136, -1, 86, -1, 88, 70, 71, -1,
+ -1, 74, 94, -1, 96, 78, 79, 99, -1, 82,
+ 83, -1, 156, -1, 9, -1, -1, 161, 91, -1,
+ -1, -1, 17, -1, -1, -1, -1, -1, -1, 121,
+ 122, 104, 105, 106, -1, -1, -1, -1, 111, -1,
+ -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
+ -1, 124, -1, 126, -1, 128, 129, 52, 53, -1,
+ -1, -1, -1, -1, -1, 138, 139, 140, 141, 142,
+ 143, 144, 145, -1, 69, 148, -1, 150, 55, 56,
+ 57, 58, -1, -1, 157, -1, -1, -1, 46, 162,
+ 163, 164, -1, 166, 167, 90, 54, 170, 171, -1,
+ -1, -1, -1, 98, -1, 100, -1, 180, 85, -1,
+ 87, -1, 89, -1, 72, 73, -1, 75, 95, 114,
+ -1, -1, -1, 81, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 131, 132, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 164, -1, 166, -1, -1, -1, -1, 171, -1, 107,
- 108, 175, -1, 111, 112, -1, 114, 115, 116, -1,
- 118, -1, -1, -1, -1, -1, 86, -1, 88, -1,
- -1, -1, -1, 93, -1, 95, -1, -1, 98, -1,
+ 108, 109, -1, -1, 112, 113, -1, 115, 116, 117,
+ -1, 119, -1, -1, -1, -1, -1, -1, -1, -1,
+ 165, -1, 167, -1, -1, -1, -1, 172, -1, -1,
+ -1, 176, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 120, 121, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 171
+ -1, -1, -1, -1, 172
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -1287,82 +1286,82 @@ static const yytype_uint16 yystos[] =
{
0, 1, 10, 14, 15, 16, 22, 23, 29, 30,
33, 36, 37, 40, 49, 53, 59, 61, 70, 71,
- 74, 78, 79, 82, 83, 103, 104, 105, 110, 119,
- 123, 125, 127, 128, 137, 138, 139, 140, 141, 142,
- 143, 144, 147, 149, 156, 161, 162, 163, 165, 166,
- 169, 170, 179, 195, 196, 197, 198, 199, 211, 212,
- 213, 214, 218, 223, 231, 240, 245, 249, 254, 258,
- 259, 260, 261, 269, 270, 273, 284, 285, 178, 60,
- 60, 215, 8, 12, 18, 68, 100, 101, 117, 148,
- 250, 251, 252, 253, 11, 96, 101, 234, 235, 236,
- 153, 262, 250, 20, 24, 80, 124, 132, 135, 155,
- 160, 225, 65, 67, 153, 200, 201, 202, 153, 153,
- 153, 153, 267, 268, 200, 281, 55, 56, 57, 58,
- 85, 87, 89, 94, 237, 238, 239, 281, 153, 153,
- 280, 60, 7, 8, 25, 63, 91, 154, 159, 274,
- 275, 27, 65, 67, 145, 200, 201, 60, 41, 92,
- 146, 246, 247, 248, 153, 263, 224, 225, 153, 6,
- 31, 48, 51, 122, 150, 151, 156, 255, 256, 257,
- 13, 19, 21, 47, 86, 88, 93, 95, 98, 120,
- 121, 219, 220, 221, 222, 201, 60, 190, 277, 278,
- 279, 60, 276, 0, 197, 178, 200, 200, 32, 60,
- 283, 153, 153, 34, 54, 77, 272, 192, 28, 50,
- 53, 133, 134, 140, 216, 217, 251, 235, 60, 32,
- 226, 3, 42, 43, 44, 45, 136, 152, 157, 158,
- 241, 242, 243, 244, 153, 197, 268, 200, 238, 60,
- 153, 275, 232, 27, 27, 232, 232, 84, 247, 60,
- 189, 225, 256, 283, 38, 60, 164, 282, 220, 60,
- 283, 265, 60, 278, 60, 178, 203, 5, 64, 66,
- 153, 174, 271, 180, 181, 286, 287, 288, 60, 153,
- 29, 36, 39, 76, 106, 167, 227, 228, 229, 153,
- 153, 60, 242, 283, 282, 46, 54, 72, 73, 75,
- 81, 107, 108, 111, 112, 114, 115, 116, 118, 171,
- 233, 232, 232, 201, 153, 61, 129, 266, 35, 9,
- 17, 52, 53, 69, 90, 97, 99, 113, 130, 131,
- 164, 166, 171, 175, 204, 205, 206, 207, 208, 209,
- 210, 143, 287, 289, 290, 292, 178, 189, 153, 4,
- 26, 102, 109, 126, 173, 176, 230, 232, 27, 264,
- 201, 60, 60, 60, 168, 153, 189, 178, 193, 290,
- 192, 283, 191, 200, 182, 291, 189, 183, 293, 294,
- 283, 189, 193, 294, 178, 283, 192, 184, 185, 186,
- 187, 188, 295, 296, 297, 193, 296, 178, 189, 178,
- 283
+ 74, 78, 79, 82, 83, 91, 104, 105, 106, 111,
+ 120, 124, 126, 128, 129, 138, 139, 140, 141, 142,
+ 143, 144, 145, 148, 150, 157, 162, 163, 164, 166,
+ 167, 170, 171, 180, 196, 197, 198, 199, 200, 212,
+ 213, 214, 215, 219, 224, 232, 241, 246, 250, 255,
+ 259, 260, 261, 262, 270, 271, 274, 285, 286, 179,
+ 60, 60, 216, 8, 12, 18, 68, 101, 102, 118,
+ 149, 251, 252, 253, 254, 11, 97, 102, 235, 236,
+ 237, 154, 263, 251, 20, 24, 80, 125, 133, 136,
+ 156, 161, 226, 65, 67, 154, 201, 202, 203, 154,
+ 154, 154, 154, 268, 269, 201, 282, 60, 55, 56,
+ 57, 58, 85, 87, 89, 95, 238, 239, 240, 282,
+ 154, 154, 281, 60, 7, 8, 25, 63, 92, 155,
+ 160, 275, 276, 27, 65, 67, 146, 201, 202, 60,
+ 41, 93, 147, 247, 248, 249, 154, 264, 225, 226,
+ 154, 6, 31, 48, 51, 123, 151, 152, 157, 256,
+ 257, 258, 13, 19, 21, 47, 86, 88, 94, 96,
+ 99, 121, 122, 220, 221, 222, 223, 202, 60, 191,
+ 278, 279, 280, 60, 277, 0, 198, 179, 201, 201,
+ 32, 60, 284, 154, 154, 34, 54, 77, 273, 193,
+ 28, 50, 53, 134, 135, 141, 217, 218, 252, 236,
+ 60, 32, 227, 3, 42, 43, 44, 45, 137, 153,
+ 158, 159, 242, 243, 244, 245, 154, 198, 269, 201,
+ 239, 60, 154, 276, 233, 27, 27, 233, 233, 84,
+ 248, 60, 190, 226, 257, 284, 38, 60, 165, 283,
+ 221, 60, 284, 266, 60, 279, 60, 179, 204, 5,
+ 64, 66, 154, 175, 272, 181, 182, 287, 288, 289,
+ 60, 154, 29, 36, 39, 76, 107, 168, 228, 229,
+ 230, 154, 154, 60, 243, 284, 283, 46, 54, 72,
+ 73, 75, 81, 108, 109, 112, 113, 115, 116, 117,
+ 119, 172, 234, 233, 233, 202, 154, 61, 130, 267,
+ 35, 9, 17, 52, 53, 69, 90, 98, 100, 114,
+ 131, 132, 165, 167, 172, 176, 205, 206, 207, 208,
+ 209, 210, 211, 144, 288, 290, 291, 293, 179, 190,
+ 154, 4, 26, 103, 110, 127, 174, 177, 231, 233,
+ 27, 265, 202, 60, 60, 60, 169, 154, 190, 179,
+ 194, 291, 193, 284, 192, 201, 183, 292, 190, 184,
+ 294, 295, 284, 190, 194, 295, 179, 284, 193, 185,
+ 186, 187, 188, 189, 296, 297, 298, 194, 297, 179,
+ 190, 179, 284
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint16 yyr1[] =
{
- 0, 194, 195, 196, 196, 196, 197, 197, 197, 197,
- 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- 198, 199, 199, 199, 199, 199, 200, 200, 201, 202,
- 202, 203, 203, 204, 204, 204, 205, 206, 206, 206,
- 206, 206, 206, 206, 206, 207, 207, 208, 208, 208,
- 208, 208, 208, 209, 210, 211, 212, 212, 213, 213,
- 213, 214, 214, 214, 214, 214, 214, 214, 214, 214,
- 215, 215, 216, 216, 217, 217, 217, 217, 217, 218,
- 219, 219, 220, 220, 220, 221, 221, 221, 221, 221,
- 221, 222, 222, 222, 222, 223, 223, 223, 224, 224,
- 225, 225, 225, 225, 225, 225, 225, 225, 226, 226,
- 227, 227, 227, 227, 228, 228, 229, 229, 230, 230,
- 230, 230, 230, 230, 230, 231, 231, 231, 231, 231,
- 231, 231, 231, 232, 232, 233, 233, 233, 233, 233,
- 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
- 234, 234, 235, 236, 236, 236, 237, 237, 238, 239,
- 239, 239, 239, 239, 239, 239, 239, 240, 241, 241,
- 242, 242, 242, 242, 242, 243, 243, 244, 244, 244,
- 244, 245, 246, 246, 247, 248, 248, 248, 249, 249,
- 250, 250, 251, 251, 252, 252, 252, 252, 252, 252,
- 253, 253, 254, 255, 255, 256, 257, 257, 257, 257,
- 257, 257, 257, 257, 258, 258, 258, 258, 258, 258,
- 258, 258, 258, 258, 258, 258, 258, 259, 259, 259,
- 260, 260, 260, 261, 261, 262, 262, 262, 263, 264,
- 264, 265, 265, 266, 266, 267, 267, 268, 269, 269,
- 270, 270, 271, 271, 271, 271, 272, 272, 272, 273,
- 274, 274, 275, 275, 275, 275, 275, 275, 275, 276,
- 276, 277, 277, 278, 278, 279, 280, 280, 281, 281,
- 282, 282, 282, 283, 283, 284, 285, 286, 286, 287,
- 288, 288, 289, 289, 290, 291, 292, 293, 293, 294,
- 295, 295, 296, 297, 297, 297, 297, 297
+ 0, 195, 196, 197, 197, 197, 198, 198, 198, 198,
+ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
+ 199, 200, 200, 200, 200, 200, 201, 201, 202, 203,
+ 203, 204, 204, 205, 205, 205, 206, 207, 207, 207,
+ 207, 207, 207, 207, 207, 208, 208, 209, 209, 209,
+ 209, 209, 209, 210, 211, 212, 213, 213, 214, 214,
+ 214, 214, 215, 215, 215, 215, 215, 215, 215, 215,
+ 215, 216, 216, 217, 217, 218, 218, 218, 218, 218,
+ 219, 220, 220, 221, 221, 221, 222, 222, 222, 222,
+ 222, 222, 223, 223, 223, 223, 224, 224, 224, 225,
+ 225, 226, 226, 226, 226, 226, 226, 226, 226, 227,
+ 227, 228, 228, 228, 228, 229, 229, 230, 230, 231,
+ 231, 231, 231, 231, 231, 231, 232, 232, 232, 232,
+ 232, 232, 232, 232, 233, 233, 234, 234, 234, 234,
+ 234, 234, 234, 234, 234, 234, 234, 234, 234, 234,
+ 234, 235, 235, 236, 237, 237, 237, 238, 238, 239,
+ 240, 240, 240, 240, 240, 240, 240, 240, 241, 242,
+ 242, 243, 243, 243, 243, 243, 244, 244, 245, 245,
+ 245, 245, 246, 247, 247, 248, 249, 249, 249, 250,
+ 250, 251, 251, 252, 252, 253, 253, 253, 253, 253,
+ 253, 254, 254, 255, 256, 256, 257, 258, 258, 258,
+ 258, 258, 258, 258, 258, 259, 259, 259, 259, 259,
+ 259, 259, 259, 259, 259, 259, 259, 259, 260, 260,
+ 260, 261, 261, 261, 262, 262, 263, 263, 263, 264,
+ 265, 265, 266, 266, 267, 267, 268, 268, 269, 270,
+ 270, 271, 271, 272, 272, 272, 272, 273, 273, 273,
+ 274, 275, 275, 276, 276, 276, 276, 276, 276, 276,
+ 277, 277, 278, 278, 279, 279, 280, 281, 281, 282,
+ 282, 283, 283, 283, 284, 284, 285, 286, 287, 287,
+ 288, 289, 289, 290, 290, 291, 292, 293, 294, 294,
+ 295, 296, 296, 297, 298, 298, 298, 298, 298
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -1375,30 +1374,30 @@ static const yytype_uint8 yyr2[] =
1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
1, 1, 1, 2, 1, 2, 1, 1, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 0, 2, 2, 2, 1, 1, 1, 1, 1, 2,
- 2, 1, 2, 2, 2, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 3, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 0, 2,
- 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 2, 2, 3, 5, 3,
- 4, 4, 3, 0, 2, 1, 1, 1, 1, 1,
+ 2, 0, 2, 2, 2, 1, 1, 1, 1, 1,
+ 2, 2, 1, 2, 2, 2, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 3, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
+ 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 2, 2, 3, 5,
+ 3, 4, 4, 3, 0, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 1, 2, 1, 1, 1, 2, 1, 2, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 2, 1,
- 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
- 1, 2, 2, 1, 2, 1, 1, 1, 2, 2,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 2, 1, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 2, 2, 3,
- 1, 2, 2, 2, 2, 3, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 0, 4, 1,
- 0, 0, 2, 2, 2, 2, 1, 1, 3, 3,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 2, 1, 1, 1, 1, 1, 1, 1, 1, 2,
- 1, 2, 1, 1, 1, 5, 2, 1, 2, 1,
- 1, 1, 1, 1, 1, 5, 1, 3, 2, 3,
- 1, 1, 2, 1, 5, 4, 3, 2, 1, 6,
- 3, 2, 3, 1, 1, 1, 1, 1
+ 1, 2, 1, 2, 1, 1, 1, 2, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
+ 1, 2, 2, 2, 2, 2, 1, 1, 1, 1,
+ 1, 1, 2, 2, 1, 2, 1, 1, 1, 2,
+ 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 2, 2, 1, 2, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2,
+ 3, 1, 2, 2, 2, 2, 3, 2, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 2, 0, 4,
+ 1, 0, 0, 2, 2, 2, 2, 1, 1, 3,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 2, 1, 1, 1, 5, 2, 1, 2,
+ 1, 1, 1, 1, 1, 1, 5, 1, 3, 2,
+ 3, 1, 1, 2, 1, 5, 4, 3, 2, 1,
+ 6, 3, 2, 3, 1, 1, 1, 1, 1
};
@@ -2077,7 +2076,7 @@ yyreduce:
switch (yyn)
{
case 5:
-#line 370 "ntp_parser.y" /* yacc.c:1646 */
+#line 371 "ntp_parser.y" /* yacc.c:1646 */
{
/* I will need to incorporate much more fine grained
* error messages. The following should suffice for
@@ -2089,85 +2088,85 @@ yyreduce:
ip_file->err_line_no,
ip_file->err_col_no);
}
-#line 2093 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2092 "ntp_parser.c" /* yacc.c:1646 */
break;
case 20:
-#line 405 "ntp_parser.y" /* yacc.c:1646 */
+#line 406 "ntp_parser.y" /* yacc.c:1646 */
{
peer_node *my_node;
my_node = create_peer_node((yyvsp[-2].Integer), (yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
APPEND_G_FIFO(cfgt.peers, my_node);
}
-#line 2104 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2103 "ntp_parser.c" /* yacc.c:1646 */
break;
case 27:
-#line 424 "ntp_parser.y" /* yacc.c:1646 */
+#line 425 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Address_node) = create_address_node((yyvsp[0].String), (yyvsp[-1].Integer)); }
-#line 2110 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2109 "ntp_parser.c" /* yacc.c:1646 */
break;
case 28:
-#line 429 "ntp_parser.y" /* yacc.c:1646 */
+#line 430 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Address_node) = create_address_node((yyvsp[0].String), AF_UNSPEC); }
-#line 2116 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2115 "ntp_parser.c" /* yacc.c:1646 */
break;
case 29:
-#line 434 "ntp_parser.y" /* yacc.c:1646 */
+#line 435 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Integer) = AF_INET; }
-#line 2122 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2121 "ntp_parser.c" /* yacc.c:1646 */
break;
case 30:
-#line 436 "ntp_parser.y" /* yacc.c:1646 */
+#line 437 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Integer) = AF_INET6; }
-#line 2128 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2127 "ntp_parser.c" /* yacc.c:1646 */
break;
case 31:
-#line 441 "ntp_parser.y" /* yacc.c:1646 */
+#line 442 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val_fifo) = NULL; }
-#line 2134 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2133 "ntp_parser.c" /* yacc.c:1646 */
break;
case 32:
-#line 443 "ntp_parser.y" /* yacc.c:1646 */
+#line 444 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2143 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2142 "ntp_parser.c" /* yacc.c:1646 */
break;
case 36:
-#line 457 "ntp_parser.y" /* yacc.c:1646 */
+#line 458 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2149 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2148 "ntp_parser.c" /* yacc.c:1646 */
break;
case 45:
-#line 473 "ntp_parser.y" /* yacc.c:1646 */
+#line 474 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2155 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2154 "ntp_parser.c" /* yacc.c:1646 */
break;
case 46:
-#line 475 "ntp_parser.y" /* yacc.c:1646 */
+#line 476 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_uval((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2161 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2160 "ntp_parser.c" /* yacc.c:1646 */
break;
case 53:
-#line 489 "ntp_parser.y" /* yacc.c:1646 */
+#line 490 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2167 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2166 "ntp_parser.c" /* yacc.c:1646 */
break;
case 55:
-#line 503 "ntp_parser.y" /* yacc.c:1646 */
+#line 504 "ntp_parser.y" /* yacc.c:1646 */
{
unpeer_node *my_node;
@@ -2175,79 +2174,85 @@ yyreduce:
if (my_node)
APPEND_G_FIFO(cfgt.unpeers, my_node);
}
-#line 2179 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2178 "ntp_parser.c" /* yacc.c:1646 */
break;
case 58:
-#line 524 "ntp_parser.y" /* yacc.c:1646 */
+#line 525 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.broadcastclient = 1; }
-#line 2185 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2184 "ntp_parser.c" /* yacc.c:1646 */
break;
case 59:
-#line 526 "ntp_parser.y" /* yacc.c:1646 */
+#line 527 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.manycastserver, (yyvsp[0].Address_fifo)); }
-#line 2191 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2190 "ntp_parser.c" /* yacc.c:1646 */
break;
case 60:
-#line 528 "ntp_parser.y" /* yacc.c:1646 */
+#line 529 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.multicastclient, (yyvsp[0].Address_fifo)); }
-#line 2197 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2196 "ntp_parser.c" /* yacc.c:1646 */
break;
case 61:
-#line 539 "ntp_parser.y" /* yacc.c:1646 */
+#line 531 "ntp_parser.y" /* yacc.c:1646 */
+ { cfgt.mdnstries = (yyvsp[0].Integer); }
+#line 2202 "ntp_parser.c" /* yacc.c:1646 */
+ break;
+
+ case 62:
+#line 542 "ntp_parser.y" /* yacc.c:1646 */
{
attr_val *atrv;
atrv = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
APPEND_G_FIFO(cfgt.vars, atrv);
}
-#line 2208 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2213 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 62:
-#line 546 "ntp_parser.y" /* yacc.c:1646 */
+ case 63:
+#line 549 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.auth.control_key = (yyvsp[0].Integer); }
-#line 2214 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2219 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 63:
-#line 548 "ntp_parser.y" /* yacc.c:1646 */
+ case 64:
+#line 551 "ntp_parser.y" /* yacc.c:1646 */
{
cfgt.auth.cryptosw++;
CONCAT_G_FIFOS(cfgt.auth.crypto_cmd_list, (yyvsp[0].Attr_val_fifo));
}
-#line 2223 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2228 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 64:
-#line 553 "ntp_parser.y" /* yacc.c:1646 */
+ case 65:
+#line 556 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.auth.keys = (yyvsp[0].String); }
-#line 2229 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2234 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 65:
-#line 555 "ntp_parser.y" /* yacc.c:1646 */
+ case 66:
+#line 558 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.auth.keysdir = (yyvsp[0].String); }
-#line 2235 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2240 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 66:
-#line 557 "ntp_parser.y" /* yacc.c:1646 */
+ case 67:
+#line 560 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.auth.request_key = (yyvsp[0].Integer); }
-#line 2241 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2246 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 67:
-#line 559 "ntp_parser.y" /* yacc.c:1646 */
+ case 68:
+#line 562 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.auth.revoke = (yyvsp[0].Integer); }
-#line 2247 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2252 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 68:
-#line 561 "ntp_parser.y" /* yacc.c:1646 */
+ case 69:
+#line 564 "ntp_parser.y" /* yacc.c:1646 */
{
cfgt.auth.trusted_key_list = (yyvsp[0].Attr_val_fifo);
@@ -2256,38 +2261,38 @@ yyreduce:
// else
// LINK_SLIST(cfgt.auth.trusted_key_list, $2, link);
}
-#line 2260 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2265 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 69:
-#line 570 "ntp_parser.y" /* yacc.c:1646 */
+ case 70:
+#line 573 "ntp_parser.y" /* yacc.c:1646 */
{ cfgt.auth.ntp_signd_socket = (yyvsp[0].String); }
-#line 2266 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2271 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 70:
-#line 575 "ntp_parser.y" /* yacc.c:1646 */
+ case 71:
+#line 578 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val_fifo) = NULL; }
-#line 2272 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2277 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 71:
-#line 577 "ntp_parser.y" /* yacc.c:1646 */
+ case 72:
+#line 580 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2281 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2286 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 72:
-#line 585 "ntp_parser.y" /* yacc.c:1646 */
+ case 73:
+#line 588 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2287 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2292 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 73:
-#line 587 "ntp_parser.y" /* yacc.c:1646 */
+ case 74:
+#line 590 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val) = NULL;
cfgt.auth.revoke = (yyvsp[0].Integer);
@@ -2296,59 +2301,59 @@ yyreduce:
"please use 'revoke %d' instead.",
cfgt.auth.revoke, cfgt.auth.revoke);
}
-#line 2300 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2305 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 79:
-#line 612 "ntp_parser.y" /* yacc.c:1646 */
+ case 80:
+#line 615 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.orphan_cmds, (yyvsp[0].Attr_val_fifo)); }
-#line 2306 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2311 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 80:
-#line 617 "ntp_parser.y" /* yacc.c:1646 */
+ case 81:
+#line 620 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2315 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2320 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 81:
-#line 622 "ntp_parser.y" /* yacc.c:1646 */
+ case 82:
+#line 625 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2324 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2329 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 82:
-#line 630 "ntp_parser.y" /* yacc.c:1646 */
+ case 83:
+#line 633 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2330 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2335 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 83:
-#line 632 "ntp_parser.y" /* yacc.c:1646 */
+ case 84:
+#line 635 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2336 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2341 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 84:
-#line 634 "ntp_parser.y" /* yacc.c:1646 */
+ case 85:
+#line 637 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (double)(yyvsp[0].Integer)); }
-#line 2342 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2347 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 95:
-#line 660 "ntp_parser.y" /* yacc.c:1646 */
+ case 96:
+#line 663 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.stats_list, (yyvsp[0].Int_fifo)); }
-#line 2348 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2353 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 96:
-#line 662 "ntp_parser.y" /* yacc.c:1646 */
+ case 97:
+#line 665 "ntp_parser.y" /* yacc.c:1646 */
{
if (input_from_file) {
cfgt.stats_dir = (yyvsp[0].String);
@@ -2357,55 +2362,55 @@ yyreduce:
yyerror(ip_file, "statsdir remote configuration ignored");
}
}
-#line 2361 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2366 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 97:
-#line 671 "ntp_parser.y" /* yacc.c:1646 */
+ case 98:
+#line 674 "ntp_parser.y" /* yacc.c:1646 */
{
filegen_node *fgn;
fgn = create_filegen_node((yyvsp[-1].Integer), (yyvsp[0].Attr_val_fifo));
APPEND_G_FIFO(cfgt.filegen_opts, fgn);
}
-#line 2372 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2377 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 98:
-#line 681 "ntp_parser.y" /* yacc.c:1646 */
+ case 99:
+#line 684 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 2381 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2386 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 99:
-#line 686 "ntp_parser.y" /* yacc.c:1646 */
+ case 100:
+#line 689 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Int_fifo) = NULL;
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 2390 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2395 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 108:
-#line 705 "ntp_parser.y" /* yacc.c:1646 */
+ case 109:
+#line 708 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val_fifo) = NULL; }
-#line 2396 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2401 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 109:
-#line 707 "ntp_parser.y" /* yacc.c:1646 */
+ case 110:
+#line 710 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2405 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2410 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 110:
-#line 715 "ntp_parser.y" /* yacc.c:1646 */
+ case 111:
+#line 718 "ntp_parser.y" /* yacc.c:1646 */
{
if (input_from_file) {
(yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
@@ -2415,11 +2420,11 @@ yyreduce:
yyerror(ip_file, "filegen file remote config ignored");
}
}
-#line 2419 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2424 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 111:
-#line 725 "ntp_parser.y" /* yacc.c:1646 */
+ case 112:
+#line 728 "ntp_parser.y" /* yacc.c:1646 */
{
if (input_from_file) {
(yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer));
@@ -2428,11 +2433,11 @@ yyreduce:
yyerror(ip_file, "filegen type remote config ignored");
}
}
-#line 2432 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2437 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 112:
-#line 734 "ntp_parser.y" /* yacc.c:1646 */
+ case 113:
+#line 737 "ntp_parser.y" /* yacc.c:1646 */
{
const char *err;
@@ -2447,33 +2452,33 @@ yyreduce:
yyerror(ip_file, err);
}
}
-#line 2451 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2456 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 113:
-#line 749 "ntp_parser.y" /* yacc.c:1646 */
+ case 114:
+#line 752 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2457 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2462 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 125:
-#line 779 "ntp_parser.y" /* yacc.c:1646 */
+ case 126:
+#line 782 "ntp_parser.y" /* yacc.c:1646 */
{
CONCAT_G_FIFOS(cfgt.discard_opts, (yyvsp[0].Attr_val_fifo));
}
-#line 2465 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2470 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 126:
-#line 783 "ntp_parser.y" /* yacc.c:1646 */
+ case 127:
+#line 786 "ntp_parser.y" /* yacc.c:1646 */
{
CONCAT_G_FIFOS(cfgt.mru_opts, (yyvsp[0].Attr_val_fifo));
}
-#line 2473 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2478 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 127:
-#line 787 "ntp_parser.y" /* yacc.c:1646 */
+ case 128:
+#line 790 "ntp_parser.y" /* yacc.c:1646 */
{
restrict_node *rn;
@@ -2481,11 +2486,11 @@ yyreduce:
ip_file->line_no);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
-#line 2485 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2490 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 128:
-#line 795 "ntp_parser.y" /* yacc.c:1646 */
+ case 129:
+#line 798 "ntp_parser.y" /* yacc.c:1646 */
{
restrict_node *rn;
@@ -2493,11 +2498,11 @@ yyreduce:
ip_file->line_no);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
-#line 2497 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2502 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 129:
-#line 803 "ntp_parser.y" /* yacc.c:1646 */
+ case 130:
+#line 806 "ntp_parser.y" /* yacc.c:1646 */
{
restrict_node *rn;
@@ -2505,11 +2510,11 @@ yyreduce:
ip_file->line_no);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
-#line 2509 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2514 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 130:
-#line 811 "ntp_parser.y" /* yacc.c:1646 */
+ case 131:
+#line 814 "ntp_parser.y" /* yacc.c:1646 */
{
restrict_node *rn;
@@ -2524,11 +2529,11 @@ yyreduce:
ip_file->line_no);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
-#line 2528 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2533 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 131:
-#line 826 "ntp_parser.y" /* yacc.c:1646 */
+ case 132:
+#line 829 "ntp_parser.y" /* yacc.c:1646 */
{
restrict_node *rn;
@@ -2543,11 +2548,11 @@ yyreduce:
ip_file->line_no);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
-#line 2547 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2552 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 132:
-#line 841 "ntp_parser.y" /* yacc.c:1646 */
+ case 133:
+#line 844 "ntp_parser.y" /* yacc.c:1646 */
{
restrict_node * rn;
@@ -2556,199 +2561,199 @@ yyreduce:
NULL, NULL, (yyvsp[0].Int_fifo), ip_file->line_no);
APPEND_G_FIFO(cfgt.restrict_opts, rn);
}
-#line 2560 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2565 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 133:
-#line 853 "ntp_parser.y" /* yacc.c:1646 */
+ case 134:
+#line 856 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Int_fifo) = NULL; }
-#line 2566 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2571 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 134:
-#line 855 "ntp_parser.y" /* yacc.c:1646 */
+ case 135:
+#line 858 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 2575 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2580 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 150:
-#line 881 "ntp_parser.y" /* yacc.c:1646 */
+ case 151:
+#line 884 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2584 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2589 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 151:
-#line 886 "ntp_parser.y" /* yacc.c:1646 */
+ case 152:
+#line 889 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2593 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2598 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 152:
-#line 894 "ntp_parser.y" /* yacc.c:1646 */
+ case 153:
+#line 897 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2599 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2604 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 156:
-#line 905 "ntp_parser.y" /* yacc.c:1646 */
+ case 157:
+#line 908 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2608 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2613 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 157:
-#line 910 "ntp_parser.y" /* yacc.c:1646 */
+ case 158:
+#line 913 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2617 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2622 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 158:
-#line 918 "ntp_parser.y" /* yacc.c:1646 */
+ case 159:
+#line 921 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2623 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2628 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 167:
-#line 938 "ntp_parser.y" /* yacc.c:1646 */
+ case 168:
+#line 941 "ntp_parser.y" /* yacc.c:1646 */
{
addr_opts_node *aon;
aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
APPEND_G_FIFO(cfgt.fudge, aon);
}
-#line 2634 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2639 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 168:
-#line 948 "ntp_parser.y" /* yacc.c:1646 */
+ case 169:
+#line 951 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2643 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2648 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 169:
-#line 953 "ntp_parser.y" /* yacc.c:1646 */
+ case 170:
+#line 956 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2652 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2657 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 170:
-#line 961 "ntp_parser.y" /* yacc.c:1646 */
+ case 171:
+#line 964 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2658 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2663 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 171:
-#line 963 "ntp_parser.y" /* yacc.c:1646 */
+ case 172:
+#line 966 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2664 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2669 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 172:
-#line 965 "ntp_parser.y" /* yacc.c:1646 */
+ case 173:
+#line 968 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2670 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2675 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 173:
-#line 967 "ntp_parser.y" /* yacc.c:1646 */
+ case 174:
+#line 970 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2676 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2681 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 174:
-#line 969 "ntp_parser.y" /* yacc.c:1646 */
+ case 175:
+#line 972 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String)); }
-#line 2682 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2687 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 181:
-#line 990 "ntp_parser.y" /* yacc.c:1646 */
+ case 182:
+#line 993 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.rlimit, (yyvsp[0].Attr_val_fifo)); }
-#line 2688 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2693 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 182:
-#line 995 "ntp_parser.y" /* yacc.c:1646 */
+ case 183:
+#line 998 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2697 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2702 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 183:
-#line 1000 "ntp_parser.y" /* yacc.c:1646 */
+ case 184:
+#line 1003 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2706 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2711 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 184:
-#line 1008 "ntp_parser.y" /* yacc.c:1646 */
+ case 185:
+#line 1011 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2712 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2717 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 188:
-#line 1024 "ntp_parser.y" /* yacc.c:1646 */
+ case 189:
+#line 1027 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.enable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2718 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2723 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 189:
-#line 1026 "ntp_parser.y" /* yacc.c:1646 */
+ case 190:
+#line 1029 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.disable_opts, (yyvsp[0].Attr_val_fifo)); }
-#line 2724 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2729 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 190:
-#line 1031 "ntp_parser.y" /* yacc.c:1646 */
+ case 191:
+#line 1034 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2733 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2738 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 191:
-#line 1036 "ntp_parser.y" /* yacc.c:1646 */
+ case 192:
+#line 1039 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2742 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2747 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 192:
-#line 1044 "ntp_parser.y" /* yacc.c:1646 */
+ case 193:
+#line 1047 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer)); }
-#line 2748 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2753 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 193:
-#line 1046 "ntp_parser.y" /* yacc.c:1646 */
+ case 194:
+#line 1049 "ntp_parser.y" /* yacc.c:1646 */
{
if (input_from_file) {
(yyval.Attr_val) = create_attr_ival(T_Flag, (yyvsp[0].Integer));
@@ -2762,63 +2767,63 @@ yyreduce:
yyerror(ip_file, err_str);
}
}
-#line 2766 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2771 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 202:
-#line 1081 "ntp_parser.y" /* yacc.c:1646 */
+ case 203:
+#line 1084 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.tinker, (yyvsp[0].Attr_val_fifo)); }
-#line 2772 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2777 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 203:
-#line 1086 "ntp_parser.y" /* yacc.c:1646 */
+ case 204:
+#line 1089 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2781 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2786 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 204:
-#line 1091 "ntp_parser.y" /* yacc.c:1646 */
+ case 205:
+#line 1094 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2790 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2795 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 205:
-#line 1099 "ntp_parser.y" /* yacc.c:1646 */
+ case 206:
+#line 1102 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double)); }
-#line 2796 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2801 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 216:
-#line 1122 "ntp_parser.y" /* yacc.c:1646 */
+ case 217:
+#line 1125 "ntp_parser.y" /* yacc.c:1646 */
{
attr_val *av;
av = create_attr_dval((yyvsp[-1].Integer), (yyvsp[0].Double));
APPEND_G_FIFO(cfgt.vars, av);
}
-#line 2807 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2812 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 217:
-#line 1129 "ntp_parser.y" /* yacc.c:1646 */
+ case 218:
+#line 1132 "ntp_parser.y" /* yacc.c:1646 */
{
attr_val *av;
av = create_attr_sval((yyvsp[-1].Integer), (yyvsp[0].String));
APPEND_G_FIFO(cfgt.vars, av);
}
-#line 2818 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2823 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 218:
-#line 1136 "ntp_parser.y" /* yacc.c:1646 */
+ case 219:
+#line 1139 "ntp_parser.y" /* yacc.c:1646 */
{
char error_text[64];
attr_val *av;
@@ -2834,11 +2839,11 @@ yyreduce:
yyerror(ip_file, error_text);
}
}
-#line 2838 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2843 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 219:
-#line 1152 "ntp_parser.y" /* yacc.c:1646 */
+ case 220:
+#line 1155 "ntp_parser.y" /* yacc.c:1646 */
{
if (!input_from_file) {
yyerror(ip_file, "remote includefile ignored");
@@ -2857,72 +2862,72 @@ yyreduce:
}
}
}
-#line 2861 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2866 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 220:
-#line 1171 "ntp_parser.y" /* yacc.c:1646 */
+ case 221:
+#line 1174 "ntp_parser.y" /* yacc.c:1646 */
{
while (curr_include_level != -1)
FCLOSE(fp[curr_include_level--]);
}
-#line 2870 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2875 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 221:
-#line 1176 "ntp_parser.y" /* yacc.c:1646 */
+ case 222:
+#line 1179 "ntp_parser.y" /* yacc.c:1646 */
{ /* see drift_parm below for actions */ }
-#line 2876 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2881 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 222:
-#line 1178 "ntp_parser.y" /* yacc.c:1646 */
+ case 223:
+#line 1181 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.logconfig, (yyvsp[0].Attr_val_fifo)); }
-#line 2882 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2887 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 223:
-#line 1180 "ntp_parser.y" /* yacc.c:1646 */
+ case 224:
+#line 1183 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.phone, (yyvsp[0].String_fifo)); }
-#line 2888 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2893 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 224:
-#line 1182 "ntp_parser.y" /* yacc.c:1646 */
+ case 225:
+#line 1185 "ntp_parser.y" /* yacc.c:1646 */
{ APPEND_G_FIFO(cfgt.setvar, (yyvsp[0].Set_var)); }
-#line 2894 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2899 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 225:
-#line 1184 "ntp_parser.y" /* yacc.c:1646 */
+ case 226:
+#line 1187 "ntp_parser.y" /* yacc.c:1646 */
{
addr_opts_node *aon;
aon = create_addr_opts_node((yyvsp[-1].Address_node), (yyvsp[0].Attr_val_fifo));
APPEND_G_FIFO(cfgt.trap, aon);
}
-#line 2905 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2910 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 226:
-#line 1191 "ntp_parser.y" /* yacc.c:1646 */
+ case 227:
+#line 1194 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.ttl, (yyvsp[0].Attr_val_fifo)); }
-#line 2911 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2916 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 235:
-#line 1213 "ntp_parser.y" /* yacc.c:1646 */
+ case 236:
+#line 1216 "ntp_parser.y" /* yacc.c:1646 */
{
attr_val *av;
av = create_attr_sval(T_Driftfile, (yyvsp[0].String));
APPEND_G_FIFO(cfgt.vars, av);
}
-#line 2922 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2927 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 236:
-#line 1220 "ntp_parser.y" /* yacc.c:1646 */
+ case 237:
+#line 1223 "ntp_parser.y" /* yacc.c:1646 */
{
attr_val *av;
@@ -2931,82 +2936,82 @@ yyreduce:
av = create_attr_dval(T_WanderThreshold, (yyvsp[0].Double));
APPEND_G_FIFO(cfgt.vars, av);
}
-#line 2935 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2940 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 237:
-#line 1229 "ntp_parser.y" /* yacc.c:1646 */
+ case 238:
+#line 1232 "ntp_parser.y" /* yacc.c:1646 */
{
attr_val *av;
av = create_attr_sval(T_Driftfile, "");
APPEND_G_FIFO(cfgt.vars, av);
}
-#line 2946 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2951 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 238:
-#line 1239 "ntp_parser.y" /* yacc.c:1646 */
+ case 239:
+#line 1242 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Set_var) = create_setvar_node((yyvsp[-3].String), (yyvsp[-1].String), (yyvsp[0].Integer)); }
-#line 2952 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2957 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 240:
-#line 1245 "ntp_parser.y" /* yacc.c:1646 */
+ case 241:
+#line 1248 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Integer) = 0; }
-#line 2958 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2963 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 241:
-#line 1250 "ntp_parser.y" /* yacc.c:1646 */
+ case 242:
+#line 1253 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val_fifo) = NULL; }
-#line 2964 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2969 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 242:
-#line 1252 "ntp_parser.y" /* yacc.c:1646 */
+ case 243:
+#line 1255 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2973 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2978 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 243:
-#line 1260 "ntp_parser.y" /* yacc.c:1646 */
+ case 244:
+#line 1263 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival((yyvsp[-1].Integer), (yyvsp[0].Integer)); }
-#line 2979 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2984 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 244:
-#line 1262 "ntp_parser.y" /* yacc.c:1646 */
+ case 245:
+#line 1265 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val) = create_attr_sval((yyvsp[-1].Integer), estrdup((yyvsp[0].Address_node)->address));
destroy_address_node((yyvsp[0].Address_node));
}
-#line 2988 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 2993 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 245:
-#line 1270 "ntp_parser.y" /* yacc.c:1646 */
+ case 246:
+#line 1273 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 2997 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3002 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 246:
-#line 1275 "ntp_parser.y" /* yacc.c:1646 */
+ case 247:
+#line 1278 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 3006 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3011 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 247:
-#line 1283 "ntp_parser.y" /* yacc.c:1646 */
+ case 248:
+#line 1286 "ntp_parser.y" /* yacc.c:1646 */
{
char prefix;
char * type;
@@ -3028,141 +3033,141 @@ yyreduce:
(yyval.Attr_val) = create_attr_sval(prefix, estrdup(type));
YYFREE((yyvsp[0].String));
}
-#line 3032 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3037 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 248:
-#line 1308 "ntp_parser.y" /* yacc.c:1646 */
+ case 249:
+#line 1311 "ntp_parser.y" /* yacc.c:1646 */
{
nic_rule_node *nrn;
nrn = create_nic_rule_node((yyvsp[0].Integer), NULL, (yyvsp[-1].Integer));
APPEND_G_FIFO(cfgt.nic_rules, nrn);
}
-#line 3043 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3048 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 249:
-#line 1315 "ntp_parser.y" /* yacc.c:1646 */
+ case 250:
+#line 1318 "ntp_parser.y" /* yacc.c:1646 */
{
nic_rule_node *nrn;
nrn = create_nic_rule_node(0, (yyvsp[0].String), (yyvsp[-1].Integer));
APPEND_G_FIFO(cfgt.nic_rules, nrn);
}
-#line 3054 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3059 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 259:
-#line 1343 "ntp_parser.y" /* yacc.c:1646 */
+ case 260:
+#line 1346 "ntp_parser.y" /* yacc.c:1646 */
{ CONCAT_G_FIFOS(cfgt.reset_counters, (yyvsp[0].Int_fifo)); }
-#line 3060 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3065 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 260:
-#line 1348 "ntp_parser.y" /* yacc.c:1646 */
+ case 261:
+#line 1351 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Int_fifo) = (yyvsp[-1].Int_fifo);
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 3069 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3074 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 261:
-#line 1353 "ntp_parser.y" /* yacc.c:1646 */
+ case 262:
+#line 1356 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Int_fifo) = NULL;
APPEND_G_FIFO((yyval.Int_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 3078 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3083 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 269:
-#line 1377 "ntp_parser.y" /* yacc.c:1646 */
+ case 270:
+#line 1380 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 3087 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3092 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 270:
-#line 1382 "ntp_parser.y" /* yacc.c:1646 */
+ case 271:
+#line 1385 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), create_int_node((yyvsp[0].Integer)));
}
-#line 3096 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3101 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 271:
-#line 1390 "ntp_parser.y" /* yacc.c:1646 */
+ case 272:
+#line 1393 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-1].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 3105 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3110 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 272:
-#line 1395 "ntp_parser.y" /* yacc.c:1646 */
+ case 273:
+#line 1398 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[0].Attr_val));
}
-#line 3114 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3119 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 273:
-#line 1403 "ntp_parser.y" /* yacc.c:1646 */
+ case 274:
+#line 1406 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_ival('i', (yyvsp[0].Integer)); }
-#line 3120 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3125 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 275:
-#line 1409 "ntp_parser.y" /* yacc.c:1646 */
+ case 276:
+#line 1412 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_rangeval('-', (yyvsp[-3].Integer), (yyvsp[-1].Integer)); }
-#line 3126 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3131 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 276:
-#line 1414 "ntp_parser.y" /* yacc.c:1646 */
+ case 277:
+#line 1417 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.String_fifo) = (yyvsp[-1].String_fifo);
APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
}
-#line 3135 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3140 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 277:
-#line 1419 "ntp_parser.y" /* yacc.c:1646 */
+ case 278:
+#line 1422 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.String_fifo) = NULL;
APPEND_G_FIFO((yyval.String_fifo), create_string_node((yyvsp[0].String)));
}
-#line 3144 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3149 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 278:
-#line 1427 "ntp_parser.y" /* yacc.c:1646 */
+ case 279:
+#line 1430 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Address_fifo) = (yyvsp[-1].Address_fifo);
APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
}
-#line 3153 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3158 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 279:
-#line 1432 "ntp_parser.y" /* yacc.c:1646 */
+ case 280:
+#line 1435 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Address_fifo) = NULL;
APPEND_G_FIFO((yyval.Address_fifo), (yyvsp[0].Address_node));
}
-#line 3162 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3167 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 280:
-#line 1440 "ntp_parser.y" /* yacc.c:1646 */
+ case 281:
+#line 1443 "ntp_parser.y" /* yacc.c:1646 */
{
if ((yyvsp[0].Integer) != 0 && (yyvsp[0].Integer) != 1) {
yyerror(ip_file, "Integer value is not boolean (0 or 1). Assuming 1");
@@ -3171,29 +3176,29 @@ yyreduce:
(yyval.Integer) = (yyvsp[0].Integer);
}
}
-#line 3175 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3180 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 281:
-#line 1448 "ntp_parser.y" /* yacc.c:1646 */
+ case 282:
+#line 1451 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Integer) = 1; }
-#line 3181 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3186 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 282:
-#line 1449 "ntp_parser.y" /* yacc.c:1646 */
+ case 283:
+#line 1452 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Integer) = 0; }
-#line 3187 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3192 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 283:
-#line 1453 "ntp_parser.y" /* yacc.c:1646 */
+ case 284:
+#line 1456 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Double) = (double)(yyvsp[0].Integer); }
-#line 3193 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3198 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 285:
-#line 1464 "ntp_parser.y" /* yacc.c:1646 */
+ case 286:
+#line 1467 "ntp_parser.y" /* yacc.c:1646 */
{
sim_node *sn;
@@ -3203,125 +3208,125 @@ yyreduce:
/* Revert from ; to \n for end-of-command */
old_config_style = 1;
}
-#line 3207 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3212 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 286:
-#line 1481 "ntp_parser.y" /* yacc.c:1646 */
+ case 287:
+#line 1484 "ntp_parser.y" /* yacc.c:1646 */
{ old_config_style = 0; }
-#line 3213 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3218 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 287:
-#line 1486 "ntp_parser.y" /* yacc.c:1646 */
+ case 288:
+#line 1489 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
}
-#line 3222 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3227 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 288:
-#line 1491 "ntp_parser.y" /* yacc.c:1646 */
+ case 289:
+#line 1494 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
}
-#line 3231 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3236 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 289:
-#line 1499 "ntp_parser.y" /* yacc.c:1646 */
+ case 290:
+#line 1502 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3237 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3242 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 292:
-#line 1509 "ntp_parser.y" /* yacc.c:1646 */
+ case 293:
+#line 1512 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Sim_server_fifo) = (yyvsp[-1].Sim_server_fifo);
APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
}
-#line 3246 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3251 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 293:
-#line 1514 "ntp_parser.y" /* yacc.c:1646 */
+ case 294:
+#line 1517 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Sim_server_fifo) = NULL;
APPEND_G_FIFO((yyval.Sim_server_fifo), (yyvsp[0].Sim_server));
}
-#line 3255 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3260 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 294:
-#line 1522 "ntp_parser.y" /* yacc.c:1646 */
+ case 295:
+#line 1525 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Sim_server) = ONLY_SIM(create_sim_server((yyvsp[-4].Address_node), (yyvsp[-2].Double), (yyvsp[-1].Sim_script_fifo))); }
-#line 3261 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3266 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 295:
-#line 1527 "ntp_parser.y" /* yacc.c:1646 */
+ case 296:
+#line 1530 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Double) = (yyvsp[-1].Double); }
-#line 3267 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3272 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 296:
-#line 1532 "ntp_parser.y" /* yacc.c:1646 */
+ case 297:
+#line 1535 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Address_node) = (yyvsp[0].Address_node); }
-#line 3273 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3278 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 297:
-#line 1537 "ntp_parser.y" /* yacc.c:1646 */
+ case 298:
+#line 1540 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Sim_script_fifo) = (yyvsp[-1].Sim_script_fifo);
APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
}
-#line 3282 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3287 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 298:
-#line 1542 "ntp_parser.y" /* yacc.c:1646 */
+ case 299:
+#line 1545 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Sim_script_fifo) = NULL;
APPEND_G_FIFO((yyval.Sim_script_fifo), (yyvsp[0].Sim_script));
}
-#line 3291 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3296 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 299:
-#line 1550 "ntp_parser.y" /* yacc.c:1646 */
+ case 300:
+#line 1553 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Sim_script) = ONLY_SIM(create_sim_script_info((yyvsp[-3].Double), (yyvsp[-1].Attr_val_fifo))); }
-#line 3297 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3302 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 300:
-#line 1555 "ntp_parser.y" /* yacc.c:1646 */
+ case 301:
+#line 1558 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = (yyvsp[-2].Attr_val_fifo);
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
}
-#line 3306 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3311 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 301:
-#line 1560 "ntp_parser.y" /* yacc.c:1646 */
+ case 302:
+#line 1563 "ntp_parser.y" /* yacc.c:1646 */
{
(yyval.Attr_val_fifo) = NULL;
APPEND_G_FIFO((yyval.Attr_val_fifo), (yyvsp[-1].Attr_val));
}
-#line 3315 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3320 "ntp_parser.c" /* yacc.c:1646 */
break;
- case 302:
-#line 1568 "ntp_parser.y" /* yacc.c:1646 */
+ case 303:
+#line 1571 "ntp_parser.y" /* yacc.c:1646 */
{ (yyval.Attr_val) = create_attr_dval((yyvsp[-2].Integer), (yyvsp[0].Double)); }
-#line 3321 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3326 "ntp_parser.c" /* yacc.c:1646 */
break;
-#line 3325 "../../ntpd/ntp_parser.c" /* yacc.c:1646 */
+#line 3330 "ntp_parser.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -3549,7 +3554,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 1579 "ntp_parser.y" /* yacc.c:1906 */
+#line 1582 "ntp_parser.y" /* yacc.c:1906 */
void
diff --git a/ntpd/ntp_parser.h b/ntpd/ntp_parser.h
index c8301572244b..fc2e971ce0a9 100644
--- a/ntpd/ntp_parser.h
+++ b/ntpd/ntp_parser.h
@@ -30,8 +30,8 @@
This special exception was added by the Free Software Foundation in
version 2.2 of Bison. */
-#ifndef YY_YY_______NTPD_NTP_PARSER_H_INCLUDED
-# define YY_YY_______NTPD_NTP_PARSER_H_INCLUDED
+#ifndef YY_YY_NTP_PARSER_H_INCLUDED
+# define YY_YY_NTP_PARSER_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
@@ -133,104 +133,105 @@ extern int yydebug;
T_Maxdist = 343,
T_Maxmem = 344,
T_Maxpoll = 345,
- T_Mem = 346,
- T_Memlock = 347,
- T_Minclock = 348,
- T_Mindepth = 349,
- T_Mindist = 350,
- T_Minimum = 351,
- T_Minpoll = 352,
- T_Minsane = 353,
- T_Mode = 354,
- T_Mode7 = 355,
- T_Monitor = 356,
- T_Month = 357,
- T_Mru = 358,
- T_Multicastclient = 359,
- T_Nic = 360,
- T_Nolink = 361,
- T_Nomodify = 362,
- T_Nomrulist = 363,
- T_None = 364,
- T_Nonvolatile = 365,
- T_Nopeer = 366,
- T_Noquery = 367,
- T_Noselect = 368,
- T_Noserve = 369,
- T_Notrap = 370,
- T_Notrust = 371,
- T_Ntp = 372,
- T_Ntpport = 373,
- T_NtpSignDsocket = 374,
- T_Orphan = 375,
- T_Orphanwait = 376,
- T_Panic = 377,
- T_Peer = 378,
- T_Peerstats = 379,
- T_Phone = 380,
- T_Pid = 381,
- T_Pidfile = 382,
- T_Pool = 383,
- T_Port = 384,
- T_Preempt = 385,
- T_Prefer = 386,
- T_Protostats = 387,
- T_Pw = 388,
- T_Randfile = 389,
- T_Rawstats = 390,
- T_Refid = 391,
- T_Requestkey = 392,
- T_Reset = 393,
- T_Restrict = 394,
- T_Revoke = 395,
- T_Rlimit = 396,
- T_Saveconfigdir = 397,
- T_Server = 398,
- T_Setvar = 399,
- T_Source = 400,
- T_Stacksize = 401,
- T_Statistics = 402,
- T_Stats = 403,
- T_Statsdir = 404,
- T_Step = 405,
- T_Stepout = 406,
- T_Stratum = 407,
- T_String = 408,
- T_Sys = 409,
- T_Sysstats = 410,
- T_Tick = 411,
- T_Time1 = 412,
- T_Time2 = 413,
- T_Timer = 414,
- T_Timingstats = 415,
- T_Tinker = 416,
- T_Tos = 417,
- T_Trap = 418,
- T_True = 419,
- T_Trustedkey = 420,
- T_Ttl = 421,
- T_Type = 422,
- T_U_int = 423,
- T_Unconfig = 424,
- T_Unpeer = 425,
- T_Version = 426,
- T_WanderThreshold = 427,
- T_Week = 428,
- T_Wildcard = 429,
- T_Xleave = 430,
- T_Year = 431,
- T_Flag = 432,
- T_EOC = 433,
- T_Simulate = 434,
- T_Beep_Delay = 435,
- T_Sim_Duration = 436,
- T_Server_Offset = 437,
- T_Duration = 438,
- T_Freq_Offset = 439,
- T_Wander = 440,
- T_Jitter = 441,
- T_Prop_Delay = 442,
- T_Proc_Delay = 443
+ T_Mdnstries = 346,
+ T_Mem = 347,
+ T_Memlock = 348,
+ T_Minclock = 349,
+ T_Mindepth = 350,
+ T_Mindist = 351,
+ T_Minimum = 352,
+ T_Minpoll = 353,
+ T_Minsane = 354,
+ T_Mode = 355,
+ T_Mode7 = 356,
+ T_Monitor = 357,
+ T_Month = 358,
+ T_Mru = 359,
+ T_Multicastclient = 360,
+ T_Nic = 361,
+ T_Nolink = 362,
+ T_Nomodify = 363,
+ T_Nomrulist = 364,
+ T_None = 365,
+ T_Nonvolatile = 366,
+ T_Nopeer = 367,
+ T_Noquery = 368,
+ T_Noselect = 369,
+ T_Noserve = 370,
+ T_Notrap = 371,
+ T_Notrust = 372,
+ T_Ntp = 373,
+ T_Ntpport = 374,
+ T_NtpSignDsocket = 375,
+ T_Orphan = 376,
+ T_Orphanwait = 377,
+ T_Panic = 378,
+ T_Peer = 379,
+ T_Peerstats = 380,
+ T_Phone = 381,
+ T_Pid = 382,
+ T_Pidfile = 383,
+ T_Pool = 384,
+ T_Port = 385,
+ T_Preempt = 386,
+ T_Prefer = 387,
+ T_Protostats = 388,
+ T_Pw = 389,
+ T_Randfile = 390,
+ T_Rawstats = 391,
+ T_Refid = 392,
+ T_Requestkey = 393,
+ T_Reset = 394,
+ T_Restrict = 395,
+ T_Revoke = 396,
+ T_Rlimit = 397,
+ T_Saveconfigdir = 398,
+ T_Server = 399,
+ T_Setvar = 400,
+ T_Source = 401,
+ T_Stacksize = 402,
+ T_Statistics = 403,
+ T_Stats = 404,
+ T_Statsdir = 405,
+ T_Step = 406,
+ T_Stepout = 407,
+ T_Stratum = 408,
+ T_String = 409,
+ T_Sys = 410,
+ T_Sysstats = 411,
+ T_Tick = 412,
+ T_Time1 = 413,
+ T_Time2 = 414,
+ T_Timer = 415,
+ T_Timingstats = 416,
+ T_Tinker = 417,
+ T_Tos = 418,
+ T_Trap = 419,
+ T_True = 420,
+ T_Trustedkey = 421,
+ T_Ttl = 422,
+ T_Type = 423,
+ T_U_int = 424,
+ T_Unconfig = 425,
+ T_Unpeer = 426,
+ T_Version = 427,
+ T_WanderThreshold = 428,
+ T_Week = 429,
+ T_Wildcard = 430,
+ T_Xleave = 431,
+ T_Year = 432,
+ T_Flag = 433,
+ T_EOC = 434,
+ T_Simulate = 435,
+ T_Beep_Delay = 436,
+ T_Sim_Duration = 437,
+ T_Server_Offset = 438,
+ T_Duration = 439,
+ T_Freq_Offset = 440,
+ T_Wander = 441,
+ T_Jitter = 442,
+ T_Prop_Delay = 443,
+ T_Proc_Delay = 444
};
#endif
/* Tokens. */
@@ -322,104 +323,105 @@ extern int yydebug;
#define T_Maxdist 343
#define T_Maxmem 344
#define T_Maxpoll 345
-#define T_Mem 346
-#define T_Memlock 347
-#define T_Minclock 348
-#define T_Mindepth 349
-#define T_Mindist 350
-#define T_Minimum 351
-#define T_Minpoll 352
-#define T_Minsane 353
-#define T_Mode 354
-#define T_Mode7 355
-#define T_Monitor 356
-#define T_Month 357
-#define T_Mru 358
-#define T_Multicastclient 359
-#define T_Nic 360
-#define T_Nolink 361
-#define T_Nomodify 362
-#define T_Nomrulist 363
-#define T_None 364
-#define T_Nonvolatile 365
-#define T_Nopeer 366
-#define T_Noquery 367
-#define T_Noselect 368
-#define T_Noserve 369
-#define T_Notrap 370
-#define T_Notrust 371
-#define T_Ntp 372
-#define T_Ntpport 373
-#define T_NtpSignDsocket 374
-#define T_Orphan 375
-#define T_Orphanwait 376
-#define T_Panic 377
-#define T_Peer 378
-#define T_Peerstats 379
-#define T_Phone 380
-#define T_Pid 381
-#define T_Pidfile 382
-#define T_Pool 383
-#define T_Port 384
-#define T_Preempt 385
-#define T_Prefer 386
-#define T_Protostats 387
-#define T_Pw 388
-#define T_Randfile 389
-#define T_Rawstats 390
-#define T_Refid 391
-#define T_Requestkey 392
-#define T_Reset 393
-#define T_Restrict 394
-#define T_Revoke 395
-#define T_Rlimit 396
-#define T_Saveconfigdir 397
-#define T_Server 398
-#define T_Setvar 399
-#define T_Source 400
-#define T_Stacksize 401
-#define T_Statistics 402
-#define T_Stats 403
-#define T_Statsdir 404
-#define T_Step 405
-#define T_Stepout 406
-#define T_Stratum 407
-#define T_String 408
-#define T_Sys 409
-#define T_Sysstats 410
-#define T_Tick 411
-#define T_Time1 412
-#define T_Time2 413
-#define T_Timer 414
-#define T_Timingstats 415
-#define T_Tinker 416
-#define T_Tos 417
-#define T_Trap 418
-#define T_True 419
-#define T_Trustedkey 420
-#define T_Ttl 421
-#define T_Type 422
-#define T_U_int 423
-#define T_Unconfig 424
-#define T_Unpeer 425
-#define T_Version 426
-#define T_WanderThreshold 427
-#define T_Week 428
-#define T_Wildcard 429
-#define T_Xleave 430
-#define T_Year 431
-#define T_Flag 432
-#define T_EOC 433
-#define T_Simulate 434
-#define T_Beep_Delay 435
-#define T_Sim_Duration 436
-#define T_Server_Offset 437
-#define T_Duration 438
-#define T_Freq_Offset 439
-#define T_Wander 440
-#define T_Jitter 441
-#define T_Prop_Delay 442
-#define T_Proc_Delay 443
+#define T_Mdnstries 346
+#define T_Mem 347
+#define T_Memlock 348
+#define T_Minclock 349
+#define T_Mindepth 350
+#define T_Mindist 351
+#define T_Minimum 352
+#define T_Minpoll 353
+#define T_Minsane 354
+#define T_Mode 355
+#define T_Mode7 356
+#define T_Monitor 357
+#define T_Month 358
+#define T_Mru 359
+#define T_Multicastclient 360
+#define T_Nic 361
+#define T_Nolink 362
+#define T_Nomodify 363
+#define T_Nomrulist 364
+#define T_None 365
+#define T_Nonvolatile 366
+#define T_Nopeer 367
+#define T_Noquery 368
+#define T_Noselect 369
+#define T_Noserve 370
+#define T_Notrap 371
+#define T_Notrust 372
+#define T_Ntp 373
+#define T_Ntpport 374
+#define T_NtpSignDsocket 375
+#define T_Orphan 376
+#define T_Orphanwait 377
+#define T_Panic 378
+#define T_Peer 379
+#define T_Peerstats 380
+#define T_Phone 381
+#define T_Pid 382
+#define T_Pidfile 383
+#define T_Pool 384
+#define T_Port 385
+#define T_Preempt 386
+#define T_Prefer 387
+#define T_Protostats 388
+#define T_Pw 389
+#define T_Randfile 390
+#define T_Rawstats 391
+#define T_Refid 392
+#define T_Requestkey 393
+#define T_Reset 394
+#define T_Restrict 395
+#define T_Revoke 396
+#define T_Rlimit 397
+#define T_Saveconfigdir 398
+#define T_Server 399
+#define T_Setvar 400
+#define T_Source 401
+#define T_Stacksize 402
+#define T_Statistics 403
+#define T_Stats 404
+#define T_Statsdir 405
+#define T_Step 406
+#define T_Stepout 407
+#define T_Stratum 408
+#define T_String 409
+#define T_Sys 410
+#define T_Sysstats 411
+#define T_Tick 412
+#define T_Time1 413
+#define T_Time2 414
+#define T_Timer 415
+#define T_Timingstats 416
+#define T_Tinker 417
+#define T_Tos 418
+#define T_Trap 419
+#define T_True 420
+#define T_Trustedkey 421
+#define T_Ttl 422
+#define T_Type 423
+#define T_U_int 424
+#define T_Unconfig 425
+#define T_Unpeer 426
+#define T_Version 427
+#define T_WanderThreshold 428
+#define T_Week 429
+#define T_Wildcard 430
+#define T_Xleave 431
+#define T_Year 432
+#define T_Flag 433
+#define T_EOC 434
+#define T_Simulate 435
+#define T_Beep_Delay 436
+#define T_Sim_Duration 437
+#define T_Server_Offset 438
+#define T_Duration 439
+#define T_Freq_Offset 440
+#define T_Wander 441
+#define T_Jitter 442
+#define T_Prop_Delay 443
+#define T_Proc_Delay 444
/* Value type. */
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
@@ -445,7 +447,7 @@ union YYSTYPE
script_info * Sim_script;
script_info_fifo * Sim_script_fifo;
-#line 449 "../../ntpd/ntp_parser.h" /* yacc.c:1909 */
+#line 451 "ntp_parser.h" /* yacc.c:1909 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -456,4 +458,4 @@ extern YYSTYPE yylval;
int yyparse (struct FILE_INFO *ip_file);
-#endif /* !YY_YY_______NTPD_NTP_PARSER_H_INCLUDED */
+#endif /* !YY_YY_NTP_PARSER_H_INCLUDED */
diff --git a/ntpd/ntp_parser.y b/ntpd/ntp_parser.y
index e75bffe4f580..c55e0697dee4 100644
--- a/ntpd/ntp_parser.y
+++ b/ntpd/ntp_parser.y
@@ -159,6 +159,7 @@
%token <Integer> T_Maxdist
%token <Integer> T_Maxmem
%token <Integer> T_Maxpoll
+%token <Integer> T_Mdnstries
%token <Integer> T_Mem
%token <Integer> T_Memlock
%token <Integer> T_Minclock
@@ -526,6 +527,8 @@ other_mode_command
{ CONCAT_G_FIFOS(cfgt.manycastserver, $2); }
| T_Multicastclient address_list
{ CONCAT_G_FIFOS(cfgt.multicastclient, $2); }
+ | T_Mdnstries T_Integer
+ { cfgt.mdnstries = $2; }
;
diff --git a/ntpd/ntp_proto.c b/ntpd/ntp_proto.c
index 091fcf527ff8..37c3f0325e07 100644
--- a/ntpd/ntp_proto.c
+++ b/ntpd/ntp_proto.c
@@ -493,11 +493,11 @@ receive(
struct exten *ep;
#endif /*AUTOKEY */
- if (has_mac % 4 != 0 || has_mac < MIN_MAC_LEN) {
+ if (has_mac % 4 != 0 || has_mac < (int)MIN_MAC_LEN) {
sys_badlength++;
return; /* bad length */
}
- if (has_mac <= MAX_MAC_LEN) {
+ if (has_mac <= (int)MAX_MAC_LEN) {
skeyid = ntohl(((u_int32 *)pkt)[authlen / 4]);
break;
@@ -706,7 +706,7 @@ receive(
* # if unsync, 0
* % can't happen
*/
- if (has_mac < MAX_MD5_LEN) {
+ if (has_mac < (int)MAX_MD5_LEN) {
sys_badauth++;
return;
}
@@ -744,7 +744,7 @@ receive(
* purposes is zero. Note the hash is saved for
* use later in the autokey mambo.
*/
- if (authlen > LEN_PKT_NOMAC && pkeyid != 0) {
+ if (authlen > (int)LEN_PKT_NOMAC && pkeyid != 0) {
session_key(&rbufp->recv_srcadr,
dstadr_sin, skeyid, 0, 2);
tkeyid = session_key(
@@ -2101,7 +2101,7 @@ poll_update(
void
peer_clear(
struct peer *peer, /* peer structure */
- char *ident /* tally lights */
+ const char *ident /* tally lights */
)
{
u_char u;
@@ -2391,7 +2391,7 @@ clock_select(void)
struct peer *peer;
int i, j, k, n;
int nlist, nl2;
- int allow, osurv;
+ int allow;
int speer;
double d, e, f, g;
double high, low;
@@ -2420,7 +2420,6 @@ clock_select(void)
* enough to handle all associations.
*/
osys_peer = sys_peer;
- osurv = sys_survivors;
sys_survivors = 0;
#ifdef LOCKCLOCK
sys_leap = LEAP_NOTINSYNC;
@@ -2990,7 +2989,7 @@ peer_xmit(
)
{
struct pkt xpkt; /* transmit packet */
- int sendlen, authlen;
+ size_t sendlen, authlen;
keyid_t xkeyid = 0; /* transmit key ID */
l_fp xmt_tx, xmt_ty;
@@ -3074,7 +3073,7 @@ peer_xmit(
LFPTOD(&xmt_ty, peer->xleave);
#ifdef DEBUG
if (debug)
- printf("transmit: at %ld %s->%s mode %d len %d\n",
+ printf("transmit: at %ld %s->%s mode %d len %zu\n",
current_time, peer->dstadr ?
stoa(&peer->dstadr->sin) : "-",
stoa(&peer->srcadr), peer->hmode, sendlen);
@@ -3321,7 +3320,7 @@ peer_xmit(
* Calculate the next session key. Since extension
* fields are present, the cookie value is zero.
*/
- if (sendlen > LEN_PKT_NOMAC) {
+ if (sendlen > (int)LEN_PKT_NOMAC) {
session_key(&peer->dstadr->sin, &peer->srcadr,
xkeyid, 0, 2);
}
@@ -3363,7 +3362,7 @@ peer_xmit(
authtrust(xkeyid, 0);
#endif /* AUTOKEY */
if (sendlen > sizeof(xpkt)) {
- msyslog(LOG_ERR, "proto: buffer overflow %u", sendlen);
+ msyslog(LOG_ERR, "proto: buffer overflow %zu", sendlen);
exit (-1);
}
peer->t21_bytes = sendlen;
@@ -3388,7 +3387,7 @@ peer_xmit(
#ifdef AUTOKEY
#ifdef DEBUG
if (debug)
- printf("transmit: at %ld %s->%s mode %d keyid %08x len %d index %d\n",
+ printf("transmit: 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);
@@ -3599,7 +3598,7 @@ pool_xmit(
&hints,
0, /* no retry */
&pool_name_resolved,
- (void *)(u_int)pool->associd);
+ (void *)(intptr_t)pool->associd);
if (!rc)
DPRINTF(1, ("pool DNS lookup %s started\n",
pool->hostname));
@@ -3705,7 +3704,7 @@ pool_name_resolved(
return;
}
- assoc = (associd_t)(u_int)context;
+ assoc = (associd_t)(intptr_t)context;
pool = findpeerbyassoc(assoc);
if (NULL == pool) {
msyslog(LOG_ERR,
diff --git a/ntpd/ntp_request.c b/ntpd/ntp_request.c
index 157304b6da52..8ffebad32882 100644
--- a/ntpd/ntp_request.c
+++ b/ntpd/ntp_request.c
@@ -58,7 +58,7 @@ struct req_proc {
* Universal request codes
*/
static const struct req_proc univ_codes[] = {
- { NO_REQUEST, NOAUTH, 0, 0 }
+ { NO_REQUEST, NOAUTH, 0, 0, NULL }
};
static void req_ack (sockaddr_u *, endpt *, struct req_pkt *, int);
@@ -231,7 +231,7 @@ static endpt *frominter;
void
init_request (void)
{
- int i;
+ size_t i;
numrequests = 0;
numresppkts = 0;
@@ -261,7 +261,7 @@ req_ack(
rpkt.auth_seq = AUTH_SEQ(0, 0);
rpkt.implementation = inpkt->implementation;
rpkt.request = inpkt->request;
- rpkt.err_nitems = ERR_NITEMS(errcode, 0);
+ rpkt.err_nitems = ERR_NITEMS(errcode, 0);
rpkt.mbz_itemsize = MBZ_ITEMSIZE(0);
/*
@@ -448,7 +448,7 @@ process_private(
|| (++ec, INFO_SEQ(inpkt->auth_seq) != 0)
|| (++ec, INFO_ERR(inpkt->err_nitems) != 0)
|| (++ec, INFO_MBZ(inpkt->mbz_itemsize) != 0)
- || (++ec, rbufp->recv_length < REQ_LEN_HDR)
+ || (++ec, rbufp->recv_length < (int)REQ_LEN_HDR)
) {
NLOG(NLOG_SYSEVENT)
if (current_time >= quiet_until) {
@@ -599,11 +599,10 @@ process_private(
return;
}
if (recv_len > REQ_LEN_NOMAC + MAX_MAC_LEN) {
- DPRINTF(5, ("bad pkt length %lu\n",
- (u_long)recv_len));
+ DPRINTF(5, ("bad pkt length %zu\n", recv_len));
msyslog(LOG_ERR,
- "process_private: bad pkt length %lu",
- (u_long)recv_len);
+ "process_private: bad pkt length %zu",
+ recv_len);
req_ack(srcadr, inter, inpkt, INFO_ERR_FMT);
return;
}
@@ -2076,7 +2075,7 @@ req_get_traps(
{
struct info_trap *it;
struct ctl_trap *tr;
- int i;
+ size_t i;
if (num_ctl_traps == 0) {
req_ack(srcadr, inter, inpkt, INFO_ERR_NODATA);
diff --git a/ntpd/ntp_restrict.c b/ntpd/ntp_restrict.c
index 6e7566713e8d..9948d54d9e90 100644
--- a/ntpd/ntp_restrict.c
+++ b/ntpd/ntp_restrict.c
@@ -46,7 +46,7 @@
#define MASK_IPV6_ADDR(dst, src, msk) \
do { \
int idx; \
- for (idx = 0; idx < COUNTOF((dst)->s6_addr); idx++) { \
+ for (idx = 0; idx < (int)COUNTOF((dst)->s6_addr); idx++) { \
(dst)->s6_addr[idx] = (src)->s6_addr[idx] \
& (msk)->s6_addr[idx]; \
} \
@@ -298,7 +298,7 @@ match_restrict6_addr(
MASK_IPV6_ADDR(&masked, addr, &res->u.v6.mask);
if (ADDR6_EQ(&masked, &res->u.v6.addr)
&& (!(RESM_NTPONLY & res->mflags)
- || NTP_PORT == port))
+ || NTP_PORT == (int)port))
break;
}
return res;
diff --git a/ntpd/ntp_scanner.c b/ntpd/ntp_scanner.c
index 3e098562dda7..a7c19922bd53 100644
--- a/ntpd/ntp_scanner.c
+++ b/ntpd/ntp_scanner.c
@@ -70,12 +70,12 @@ keyword(
int token
)
{
- int i;
+ size_t i;
const char *text;
i = token - LOWEST_KEYWORD_ID;
- if (i >= 0 && i < COUNTOF(keyword_text))
+ if (i < COUNTOF(keyword_text))
text = keyword_text[i];
else
text = NULL;
@@ -297,7 +297,7 @@ is_integer(
/* Check that all the remaining characters are digits */
for (; lexeme[i] != '\0'; i++) {
- if (!isdigit(lexeme[i]))
+ if (!isdigit((unsigned char)lexeme[i]))
return FALSE;
}
@@ -322,7 +322,7 @@ is_u_int(
int is_hex;
i = 0;
- if ('0' == lexeme[i] && 'x' == tolower(lexeme[i + 1])) {
+ if ('0' == lexeme[i] && 'x' == tolower((unsigned char)lexeme[i + 1])) {
i += 2;
is_hex = TRUE;
} else {
@@ -331,9 +331,9 @@ is_u_int(
/* Check that all the remaining characters are digits */
for (; lexeme[i] != '\0'; i++) {
- if (is_hex && !isxdigit(lexeme[i]))
+ if (is_hex && !isxdigit((unsigned char)lexeme[i]))
return FALSE;
- if (!is_hex && !isdigit(lexeme[i]))
+ if (!is_hex && !isdigit((unsigned char)lexeme[i]))
return FALSE;
}
@@ -357,14 +357,14 @@ is_double(
i++;
/* Read the integer part */
- for (; lexeme[i] && isdigit(lexeme[i]); i++)
+ for (; lexeme[i] && isdigit((unsigned char)lexeme[i]); i++)
num_digits++;
/* Check for the optional decimal point */
if ('.' == lexeme[i]) {
i++;
/* Check for any digits after the decimal point */
- for (; lexeme[i] && isdigit(lexeme[i]); i++)
+ for (; lexeme[i] && isdigit((unsigned char)lexeme[i]); i++)
num_digits++;
}
@@ -380,7 +380,7 @@ is_double(
return 1;
/* There is still more input, read the exponent */
- if ('e' == tolower(lexeme[i]))
+ if ('e' == tolower((unsigned char)lexeme[i]))
i++;
else
return 0;
@@ -390,7 +390,7 @@ is_double(
i++;
/* Now read the exponent part */
- while (lexeme[i] && isdigit(lexeme[i]))
+ while (lexeme[i] && isdigit((unsigned char)lexeme[i]))
i++;
/* Check if we are done */
@@ -455,7 +455,7 @@ create_string_token(
* ignore end of line whitespace
*/
pch = lexeme;
- while (*pch && isspace(*pch))
+ while (*pch && isspace((unsigned char)*pch))
pch++;
if (!*pch) {
@@ -481,7 +481,7 @@ yylex(
)
{
static follby followedby = FOLLBY_TOKEN;
- int i;
+ size_t i;
int instring;
int yylval_was_set;
int converted;
@@ -502,7 +502,7 @@ yylex(
if (EOF == ch) {
- if (!input_from_file || !curr_include_level)
+ if (!input_from_file || curr_include_level <= 0)
return 0;
FCLOSE(fp[curr_include_level]);
@@ -640,7 +640,7 @@ yylex(
} else if (is_u_int(yytext)) {
yylval_was_set = TRUE;
if ('0' == yytext[0] &&
- 'x' == tolower(yytext[1]))
+ 'x' == tolower((unsigned char)yytext[1]))
converted = sscanf(&yytext[2], "%x",
&yylval.U_int);
else
diff --git a/ntpd/ntp_util.c b/ntpd/ntp_util.c
index a7da52b86141..c4bc9011a518 100644
--- a/ntpd/ntp_util.c
+++ b/ntpd/ntp_util.c
@@ -679,7 +679,7 @@ record_raw_stats(
int version,
int mode,
int stratum,
- int poll,
+ int ppoll,
int precision,
double root_delay, /* seconds */
double root_dispersion,/* seconds */
@@ -702,7 +702,7 @@ record_raw_stats(
stoa(srcadr), dstadr ? stoa(dstadr) : "-",
ulfptoa(t1, 9), ulfptoa(t2, 9),
ulfptoa(t3, 9), ulfptoa(t4, 9),
- leap, version, mode, stratum, poll, precision,
+ leap, version, mode, stratum, ppoll, precision,
root_delay, root_dispersion, refid_str(refid, stratum));
fflush(rawstats.fp);
}
diff --git a/ntpd/ntpd-opts.c b/ntpd/ntpd-opts.c
index 82fe62477fdc..953f39750de6 100644
--- a/ntpd/ntpd-opts.c
+++ b/ntpd/ntpd-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpd-opts.c)
*
- * It has been AutoGen-ed December 19, 2014 at 07:46:33 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:39:17 AM by AutoGen 5.18.5pre4
* From the definitions ntpd-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpd program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -50,7 +50,7 @@ extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpd_opt_strs+0)
-#define zLicenseDescrip (ntpd_opt_strs+310)
+#define zLicenseDescrip (ntpd_opt_strs+340)
/*
* global included definitions
@@ -74,150 +74,151 @@ extern FILE * option_usage_fp;
/**
* static const strings for ntpd options
*/
-static char const ntpd_opt_strs[2999] =
-/* 0 */ "ntpd 4.2.8\n"
- "Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n"
+static char const ntpd_opt_strs[3061] =
+/* 0 */ "ntpd 4.2.8p1\n"
+ "Copyright (C) 1992-2015 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"
-/* 310 */ "Permission to use, copy, modify, and distribute this software and its\n"
+/* 340 */ "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 makes no\n"
- "representations about the suitability this software for any purpose. It is\n"
- "provided \"as is\" without express or implied warranty.\n\0"
-/* 950 */ "Force IPv4 DNS name resolution\0"
-/* 981 */ "IPV4\0"
-/* 986 */ "ipv4\0"
-/* 991 */ "Force IPv6 DNS name resolution\0"
-/* 1022 */ "IPV6\0"
-/* 1027 */ "ipv6\0"
-/* 1032 */ "Require crypto authentication\0"
-/* 1062 */ "AUTHREQ\0"
-/* 1070 */ "authreq\0"
-/* 1078 */ "Do not require crypto authentication\0"
-/* 1115 */ "AUTHNOREQ\0"
-/* 1125 */ "authnoreq\0"
-/* 1135 */ "Allow us to sync to broadcast servers\0"
-/* 1173 */ "BCASTSYNC\0"
-/* 1183 */ "bcastsync\0"
-/* 1193 */ "configuration file name\0"
-/* 1217 */ "CONFIGFILE\0"
-/* 1228 */ "configfile\0"
-/* 1239 */ "Increase debug verbosity level\0"
-/* 1270 */ "DEBUG_LEVEL\0"
-/* 1282 */ "debug-level\0"
-/* 1294 */ "Set the debug verbosity level\0"
-/* 1324 */ "SET_DEBUG_LEVEL\0"
-/* 1340 */ "set-debug-level\0"
-/* 1356 */ "frequency drift file name\0"
-/* 1382 */ "DRIFTFILE\0"
-/* 1392 */ "driftfile\0"
-/* 1402 */ "Allow the first adjustment to be Big\0"
-/* 1439 */ "PANICGATE\0"
-/* 1449 */ "panicgate\0"
-/* 1459 */ "Jail directory\0"
-/* 1474 */ "JAILDIR\0"
-/* 1482 */ "jaildir\0"
-/* 1490 */ "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs\0"
-/* 1569 */ "Listen on an interface name or address\0"
-/* 1608 */ "INTERFACE\0"
-/* 1618 */ "interface\0"
-/* 1628 */ "path to symmetric keys\0"
-/* 1651 */ "KEYFILE\0"
-/* 1659 */ "keyfile\0"
-/* 1667 */ "path to the log file\0"
-/* 1688 */ "LOGFILE\0"
-/* 1696 */ "logfile\0"
-/* 1704 */ "Do not listen to virtual interfaces\0"
-/* 1740 */ "NOVIRTUALIPS\0"
-/* 1753 */ "novirtualips\0"
-/* 1766 */ "Modify Multimedia Timer (Windows only)\0"
-/* 1805 */ "MODIFYMMTIMER\0"
-/* 1819 */ "modifymmtimer\0"
-/* 1833 */ "Do not fork\0"
-/* 1845 */ "NOFORK\0"
-/* 1852 */ "nofork\0"
-/* 1859 */ "Run at high priority\0"
-/* 1880 */ "NICE\0"
-/* 1885 */ "nice\0"
-/* 1890 */ "path to the PID file\0"
-/* 1911 */ "PIDFILE\0"
-/* 1919 */ "pidfile\0"
-/* 1927 */ "Process priority\0"
-/* 1944 */ "PRIORITY\0"
-/* 1953 */ "priority\0"
-/* 1962 */ "Set the time and quit\0"
-/* 1984 */ "QUIT\0"
-/* 1989 */ "quit\0"
-/* 1994 */ "Broadcast/propagation delay\0"
-/* 2022 */ "PROPAGATIONDELAY\0"
-/* 2039 */ "propagationdelay\0"
-/* 2056 */ "Save parsed configuration and quit\0"
-/* 2091 */ "SAVECONFIGQUIT\0"
-/* 2106 */ "saveconfigquit\0"
-/* 2121 */ "Statistics file location\0"
-/* 2146 */ "STATSDIR\0"
-/* 2155 */ "statsdir\0"
-/* 2164 */ "Trusted key number\0"
-/* 2183 */ "TRUSTEDKEY\0"
-/* 2194 */ "trustedkey\0"
-/* 2205 */ "Run as userid (or userid:groupid)\0"
-/* 2239 */ "USER\0"
-/* 2244 */ "user\0"
-/* 2249 */ "interval in seconds between scans for new or dropped interfaces\0"
-/* 2313 */ "UPDATEINTERVAL\0"
-/* 2328 */ "updateinterval\0"
-/* 2343 */ "make ARG an ntp variable (RW)\0"
-/* 2373 */ "VAR\0"
-/* 2377 */ "var\0"
-/* 2381 */ "make ARG an ntp variable (RW|DEF)\0"
-/* 2415 */ "DVAR\0"
-/* 2420 */ "dvar\0"
-/* 2425 */ "Seconds to wait for first clock sync\0"
-/* 2462 */ "WAIT_SYNC\0"
-/* 2472 */ "wait-sync\0"
-/* 2482 */ "Slew up to 600 seconds\0"
-/* 2505 */ "SLEW\0"
-/* 2510 */ "slew\0"
-/* 2515 */ "Use CPU cycle counter (Windows only)\0"
-/* 2552 */ "USEPCC\0"
-/* 2559 */ "usepcc\0"
-/* 2566 */ "Force CPU cycle counter use (Windows only)\0"
-/* 2609 */ "PCCFREQ\0"
-/* 2617 */ "pccfreq\0"
-/* 2625 */ "Register with mDNS as a NTP server\0"
-/* 2660 */ "MDNS\0"
-/* 2665 */ "mdns\0"
-/* 2670 */ "display extended usage information and exit\0"
-/* 2714 */ "help\0"
-/* 2719 */ "extended usage information passed thru pager\0"
-/* 2764 */ "more-help\0"
-/* 2774 */ "output version information and exit\0"
-/* 2810 */ "version\0"
-/* 2818 */ "NTPD\0"
-/* 2823 */ "ntpd - NTP daemon program - Ver. 4.2.8\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"
+/* 1008 */ "Force IPv4 DNS name resolution\0"
+/* 1039 */ "IPV4\0"
+/* 1044 */ "ipv4\0"
+/* 1049 */ "Force IPv6 DNS name resolution\0"
+/* 1080 */ "IPV6\0"
+/* 1085 */ "ipv6\0"
+/* 1090 */ "Require crypto authentication\0"
+/* 1120 */ "AUTHREQ\0"
+/* 1128 */ "authreq\0"
+/* 1136 */ "Do not require crypto authentication\0"
+/* 1173 */ "AUTHNOREQ\0"
+/* 1183 */ "authnoreq\0"
+/* 1193 */ "Allow us to sync to broadcast servers\0"
+/* 1231 */ "BCASTSYNC\0"
+/* 1241 */ "bcastsync\0"
+/* 1251 */ "configuration file name\0"
+/* 1275 */ "CONFIGFILE\0"
+/* 1286 */ "configfile\0"
+/* 1297 */ "Increase debug verbosity level\0"
+/* 1328 */ "DEBUG_LEVEL\0"
+/* 1340 */ "debug-level\0"
+/* 1352 */ "Set the debug verbosity level\0"
+/* 1382 */ "SET_DEBUG_LEVEL\0"
+/* 1398 */ "set-debug-level\0"
+/* 1414 */ "frequency drift file name\0"
+/* 1440 */ "DRIFTFILE\0"
+/* 1450 */ "driftfile\0"
+/* 1460 */ "Allow the first adjustment to be Big\0"
+/* 1497 */ "PANICGATE\0"
+/* 1507 */ "panicgate\0"
+/* 1517 */ "Jail directory\0"
+/* 1532 */ "JAILDIR\0"
+/* 1540 */ "jaildir\0"
+/* 1548 */ "built without --enable-clockctl or --enable-linuxcaps or --enable-solarisprivs\0"
+/* 1627 */ "Listen on an interface name or address\0"
+/* 1666 */ "INTERFACE\0"
+/* 1676 */ "interface\0"
+/* 1686 */ "path to symmetric keys\0"
+/* 1709 */ "KEYFILE\0"
+/* 1717 */ "keyfile\0"
+/* 1725 */ "path to the log file\0"
+/* 1746 */ "LOGFILE\0"
+/* 1754 */ "logfile\0"
+/* 1762 */ "Do not listen to virtual interfaces\0"
+/* 1798 */ "NOVIRTUALIPS\0"
+/* 1811 */ "novirtualips\0"
+/* 1824 */ "Modify Multimedia Timer (Windows only)\0"
+/* 1863 */ "MODIFYMMTIMER\0"
+/* 1877 */ "modifymmtimer\0"
+/* 1891 */ "Do not fork\0"
+/* 1903 */ "NOFORK\0"
+/* 1910 */ "nofork\0"
+/* 1917 */ "Run at high priority\0"
+/* 1938 */ "NICE\0"
+/* 1943 */ "nice\0"
+/* 1948 */ "path to the PID file\0"
+/* 1969 */ "PIDFILE\0"
+/* 1977 */ "pidfile\0"
+/* 1985 */ "Process priority\0"
+/* 2002 */ "PRIORITY\0"
+/* 2011 */ "priority\0"
+/* 2020 */ "Set the time and quit\0"
+/* 2042 */ "QUIT\0"
+/* 2047 */ "quit\0"
+/* 2052 */ "Broadcast/propagation delay\0"
+/* 2080 */ "PROPAGATIONDELAY\0"
+/* 2097 */ "propagationdelay\0"
+/* 2114 */ "Save parsed configuration and quit\0"
+/* 2149 */ "SAVECONFIGQUIT\0"
+/* 2164 */ "saveconfigquit\0"
+/* 2179 */ "Statistics file location\0"
+/* 2204 */ "STATSDIR\0"
+/* 2213 */ "statsdir\0"
+/* 2222 */ "Trusted key number\0"
+/* 2241 */ "TRUSTEDKEY\0"
+/* 2252 */ "trustedkey\0"
+/* 2263 */ "Run as userid (or userid:groupid)\0"
+/* 2297 */ "USER\0"
+/* 2302 */ "user\0"
+/* 2307 */ "interval in seconds between scans for new or dropped interfaces\0"
+/* 2371 */ "UPDATEINTERVAL\0"
+/* 2386 */ "updateinterval\0"
+/* 2401 */ "make ARG an ntp variable (RW)\0"
+/* 2431 */ "VAR\0"
+/* 2435 */ "var\0"
+/* 2439 */ "make ARG an ntp variable (RW|DEF)\0"
+/* 2473 */ "DVAR\0"
+/* 2478 */ "dvar\0"
+/* 2483 */ "Seconds to wait for first clock sync\0"
+/* 2520 */ "WAIT_SYNC\0"
+/* 2530 */ "wait-sync\0"
+/* 2540 */ "Slew up to 600 seconds\0"
+/* 2563 */ "SLEW\0"
+/* 2568 */ "slew\0"
+/* 2573 */ "Use CPU cycle counter (Windows only)\0"
+/* 2610 */ "USEPCC\0"
+/* 2617 */ "usepcc\0"
+/* 2624 */ "Force CPU cycle counter use (Windows only)\0"
+/* 2667 */ "PCCFREQ\0"
+/* 2675 */ "pccfreq\0"
+/* 2683 */ "Register with mDNS as a NTP server\0"
+/* 2718 */ "MDNS\0"
+/* 2723 */ "mdns\0"
+/* 2728 */ "display extended usage information and exit\0"
+/* 2772 */ "help\0"
+/* 2777 */ "extended usage information passed thru pager\0"
+/* 2822 */ "more-help\0"
+/* 2832 */ "output version information and exit\0"
+/* 2868 */ "version\0"
+/* 2876 */ "NTPD\0"
+/* 2881 */ "ntpd - NTP daemon program - Ver. 4.2.8p1\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
"\t\t[ <server1> ... <serverN> ]\n\0"
-/* 2952 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 2986 */ "\n\0"
-/* 2988 */ "ntpd 4.2.8";
+/* 3012 */ "http://bugs.ntp.org, bugs@ntp.org\0"
+/* 3046 */ "\n\0"
+/* 3048 */ "ntpd 4.2.8p1";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
-#define IPV4_DESC (ntpd_opt_strs+950)
+#define IPV4_DESC (ntpd_opt_strs+1008)
/** Upper-cased name for the ipv4 option */
-#define IPV4_NAME (ntpd_opt_strs+981)
+#define IPV4_NAME (ntpd_opt_strs+1039)
/** Name string for the ipv4 option */
-#define IPV4_name (ntpd_opt_strs+986)
+#define IPV4_name (ntpd_opt_strs+1044)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
@@ -229,11 +230,11 @@ static int const aIpv4CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
-#define IPV6_DESC (ntpd_opt_strs+991)
+#define IPV6_DESC (ntpd_opt_strs+1049)
/** Upper-cased name for the ipv6 option */
-#define IPV6_NAME (ntpd_opt_strs+1022)
+#define IPV6_NAME (ntpd_opt_strs+1080)
/** Name string for the ipv6 option */
-#define IPV6_name (ntpd_opt_strs+1027)
+#define IPV6_name (ntpd_opt_strs+1085)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
@@ -245,11 +246,11 @@ static int const aIpv6CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the authreq option */
-#define AUTHREQ_DESC (ntpd_opt_strs+1032)
+#define AUTHREQ_DESC (ntpd_opt_strs+1090)
/** Upper-cased name for the authreq option */
-#define AUTHREQ_NAME (ntpd_opt_strs+1062)
+#define AUTHREQ_NAME (ntpd_opt_strs+1120)
/** Name string for the authreq option */
-#define AUTHREQ_name (ntpd_opt_strs+1070)
+#define AUTHREQ_name (ntpd_opt_strs+1128)
/** Other options that appear in conjunction with the authreq option */
static int const aAuthreqCantList[] = {
INDEX_OPT_AUTHNOREQ, NO_EQUIVALENT };
@@ -261,11 +262,11 @@ static int const aAuthreqCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the authnoreq option */
-#define AUTHNOREQ_DESC (ntpd_opt_strs+1078)
+#define AUTHNOREQ_DESC (ntpd_opt_strs+1136)
/** Upper-cased name for the authnoreq option */
-#define AUTHNOREQ_NAME (ntpd_opt_strs+1115)
+#define AUTHNOREQ_NAME (ntpd_opt_strs+1173)
/** Name string for the authnoreq option */
-#define AUTHNOREQ_name (ntpd_opt_strs+1125)
+#define AUTHNOREQ_name (ntpd_opt_strs+1183)
/** Other options that appear in conjunction with the authnoreq option */
static int const aAuthnoreqCantList[] = {
INDEX_OPT_AUTHREQ, NO_EQUIVALENT };
@@ -276,11 +277,11 @@ static int const aAuthnoreqCantList[] = {
* bcastsync option description:
*/
/** Descriptive text for the bcastsync option */
-#define BCASTSYNC_DESC (ntpd_opt_strs+1135)
+#define BCASTSYNC_DESC (ntpd_opt_strs+1193)
/** Upper-cased name for the bcastsync option */
-#define BCASTSYNC_NAME (ntpd_opt_strs+1173)
+#define BCASTSYNC_NAME (ntpd_opt_strs+1231)
/** Name string for the bcastsync option */
-#define BCASTSYNC_name (ntpd_opt_strs+1183)
+#define BCASTSYNC_name (ntpd_opt_strs+1241)
/** Compiled in flag settings for the bcastsync option */
#define BCASTSYNC_FLAGS (OPTST_DISABLED)
@@ -288,11 +289,11 @@ static int const aAuthnoreqCantList[] = {
* configfile option description:
*/
/** Descriptive text for the configfile option */
-#define CONFIGFILE_DESC (ntpd_opt_strs+1193)
+#define CONFIGFILE_DESC (ntpd_opt_strs+1251)
/** Upper-cased name for the configfile option */
-#define CONFIGFILE_NAME (ntpd_opt_strs+1217)
+#define CONFIGFILE_NAME (ntpd_opt_strs+1275)
/** Name string for the configfile option */
-#define CONFIGFILE_name (ntpd_opt_strs+1228)
+#define CONFIGFILE_name (ntpd_opt_strs+1286)
/** Compiled in flag settings for the configfile option */
#define CONFIGFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -301,11 +302,11 @@ static int const aAuthnoreqCantList[] = {
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
-#define DEBUG_LEVEL_DESC (ntpd_opt_strs+1239)
+#define DEBUG_LEVEL_DESC (ntpd_opt_strs+1297)
/** Upper-cased name for the debug-level option */
-#define DEBUG_LEVEL_NAME (ntpd_opt_strs+1270)
+#define DEBUG_LEVEL_NAME (ntpd_opt_strs+1328)
/** Name string for the debug-level option */
-#define DEBUG_LEVEL_name (ntpd_opt_strs+1282)
+#define DEBUG_LEVEL_name (ntpd_opt_strs+1340)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
@@ -313,11 +314,11 @@ static int const aAuthnoreqCantList[] = {
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
-#define SET_DEBUG_LEVEL_DESC (ntpd_opt_strs+1294)
+#define SET_DEBUG_LEVEL_DESC (ntpd_opt_strs+1352)
/** Upper-cased name for the set-debug-level option */
-#define SET_DEBUG_LEVEL_NAME (ntpd_opt_strs+1324)
+#define SET_DEBUG_LEVEL_NAME (ntpd_opt_strs+1382)
/** Name string for the set-debug-level option */
-#define SET_DEBUG_LEVEL_name (ntpd_opt_strs+1340)
+#define SET_DEBUG_LEVEL_name (ntpd_opt_strs+1398)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -326,11 +327,11 @@ static int const aAuthnoreqCantList[] = {
* driftfile option description:
*/
/** Descriptive text for the driftfile option */
-#define DRIFTFILE_DESC (ntpd_opt_strs+1356)
+#define DRIFTFILE_DESC (ntpd_opt_strs+1414)
/** Upper-cased name for the driftfile option */
-#define DRIFTFILE_NAME (ntpd_opt_strs+1382)
+#define DRIFTFILE_NAME (ntpd_opt_strs+1440)
/** Name string for the driftfile option */
-#define DRIFTFILE_name (ntpd_opt_strs+1392)
+#define DRIFTFILE_name (ntpd_opt_strs+1450)
/** Compiled in flag settings for the driftfile option */
#define DRIFTFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -339,11 +340,11 @@ static int const aAuthnoreqCantList[] = {
* panicgate option description:
*/
/** Descriptive text for the panicgate option */
-#define PANICGATE_DESC (ntpd_opt_strs+1402)
+#define PANICGATE_DESC (ntpd_opt_strs+1460)
/** Upper-cased name for the panicgate option */
-#define PANICGATE_NAME (ntpd_opt_strs+1439)
+#define PANICGATE_NAME (ntpd_opt_strs+1497)
/** Name string for the panicgate option */
-#define PANICGATE_name (ntpd_opt_strs+1449)
+#define PANICGATE_name (ntpd_opt_strs+1507)
/** Compiled in flag settings for the panicgate option */
#define PANICGATE_FLAGS (OPTST_DISABLED)
@@ -352,11 +353,11 @@ static int const aAuthnoreqCantList[] = {
*/
#ifdef HAVE_DROPROOT
/** Descriptive text for the jaildir option */
-#define JAILDIR_DESC (ntpd_opt_strs+1459)
+#define JAILDIR_DESC (ntpd_opt_strs+1517)
/** Upper-cased name for the jaildir option */
-#define JAILDIR_NAME (ntpd_opt_strs+1474)
+#define JAILDIR_NAME (ntpd_opt_strs+1532)
/** Name string for the jaildir option */
-#define JAILDIR_name (ntpd_opt_strs+1482)
+#define JAILDIR_name (ntpd_opt_strs+1540)
/** Compiled in flag settings for the jaildir option */
#define JAILDIR_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -365,19 +366,19 @@ static int const aAuthnoreqCantList[] = {
#define JAILDIR_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define JAILDIR_NAME NULL
/** Descriptive text for the jaildir option */
-#define JAILDIR_DESC (ntpd_opt_strs+1490)
-#define JAILDIR_name (ntpd_opt_strs+1482)
+#define JAILDIR_DESC (ntpd_opt_strs+1548)
+#define JAILDIR_name (ntpd_opt_strs+1540)
#endif /* HAVE_DROPROOT */
/**
* interface option description:
*/
/** Descriptive text for the interface option */
-#define INTERFACE_DESC (ntpd_opt_strs+1569)
+#define INTERFACE_DESC (ntpd_opt_strs+1627)
/** Upper-cased name for the interface option */
-#define INTERFACE_NAME (ntpd_opt_strs+1608)
+#define INTERFACE_NAME (ntpd_opt_strs+1666)
/** Name string for the interface option */
-#define INTERFACE_name (ntpd_opt_strs+1618)
+#define INTERFACE_name (ntpd_opt_strs+1676)
/** Compiled in flag settings for the interface option */
#define INTERFACE_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -386,11 +387,11 @@ static int const aAuthnoreqCantList[] = {
* keyfile option description:
*/
/** Descriptive text for the keyfile option */
-#define KEYFILE_DESC (ntpd_opt_strs+1628)
+#define KEYFILE_DESC (ntpd_opt_strs+1686)
/** Upper-cased name for the keyfile option */
-#define KEYFILE_NAME (ntpd_opt_strs+1651)
+#define KEYFILE_NAME (ntpd_opt_strs+1709)
/** Name string for the keyfile option */
-#define KEYFILE_name (ntpd_opt_strs+1659)
+#define KEYFILE_name (ntpd_opt_strs+1717)
/** Compiled in flag settings for the keyfile option */
#define KEYFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -399,11 +400,11 @@ static int const aAuthnoreqCantList[] = {
* logfile option description:
*/
/** Descriptive text for the logfile option */
-#define LOGFILE_DESC (ntpd_opt_strs+1667)
+#define LOGFILE_DESC (ntpd_opt_strs+1725)
/** Upper-cased name for the logfile option */
-#define LOGFILE_NAME (ntpd_opt_strs+1688)
+#define LOGFILE_NAME (ntpd_opt_strs+1746)
/** Name string for the logfile option */
-#define LOGFILE_name (ntpd_opt_strs+1696)
+#define LOGFILE_name (ntpd_opt_strs+1754)
/** Compiled in flag settings for the logfile option */
#define LOGFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -412,11 +413,11 @@ static int const aAuthnoreqCantList[] = {
* novirtualips option description:
*/
/** Descriptive text for the novirtualips option */
-#define NOVIRTUALIPS_DESC (ntpd_opt_strs+1704)
+#define NOVIRTUALIPS_DESC (ntpd_opt_strs+1762)
/** Upper-cased name for the novirtualips option */
-#define NOVIRTUALIPS_NAME (ntpd_opt_strs+1740)
+#define NOVIRTUALIPS_NAME (ntpd_opt_strs+1798)
/** Name string for the novirtualips option */
-#define NOVIRTUALIPS_name (ntpd_opt_strs+1753)
+#define NOVIRTUALIPS_name (ntpd_opt_strs+1811)
/** Compiled in flag settings for the novirtualips option */
#define NOVIRTUALIPS_FLAGS (OPTST_DISABLED)
@@ -425,11 +426,11 @@ static int const aAuthnoreqCantList[] = {
*/
#ifdef SYS_WINNT
/** Descriptive text for the modifymmtimer option */
-#define MODIFYMMTIMER_DESC (ntpd_opt_strs+1766)
+#define MODIFYMMTIMER_DESC (ntpd_opt_strs+1824)
/** Upper-cased name for the modifymmtimer option */
-#define MODIFYMMTIMER_NAME (ntpd_opt_strs+1805)
+#define MODIFYMMTIMER_NAME (ntpd_opt_strs+1863)
/** Name string for the modifymmtimer option */
-#define MODIFYMMTIMER_name (ntpd_opt_strs+1819)
+#define MODIFYMMTIMER_name (ntpd_opt_strs+1877)
/** Compiled in flag settings for the modifymmtimer option */
#define MODIFYMMTIMER_FLAGS (OPTST_DISABLED)
@@ -445,11 +446,11 @@ static int const aAuthnoreqCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the nofork option */
-#define NOFORK_DESC (ntpd_opt_strs+1833)
+#define NOFORK_DESC (ntpd_opt_strs+1891)
/** Upper-cased name for the nofork option */
-#define NOFORK_NAME (ntpd_opt_strs+1845)
+#define NOFORK_NAME (ntpd_opt_strs+1903)
/** Name string for the nofork option */
-#define NOFORK_name (ntpd_opt_strs+1852)
+#define NOFORK_name (ntpd_opt_strs+1910)
/** Other options that appear in conjunction with the nofork option */
static int const aNoforkCantList[] = {
INDEX_OPT_WAIT_SYNC, NO_EQUIVALENT };
@@ -460,11 +461,11 @@ static int const aNoforkCantList[] = {
* nice option description:
*/
/** Descriptive text for the nice option */
-#define NICE_DESC (ntpd_opt_strs+1859)
+#define NICE_DESC (ntpd_opt_strs+1917)
/** Upper-cased name for the nice option */
-#define NICE_NAME (ntpd_opt_strs+1880)
+#define NICE_NAME (ntpd_opt_strs+1938)
/** Name string for the nice option */
-#define NICE_name (ntpd_opt_strs+1885)
+#define NICE_name (ntpd_opt_strs+1943)
/** Compiled in flag settings for the nice option */
#define NICE_FLAGS (OPTST_DISABLED)
@@ -472,11 +473,11 @@ static int const aNoforkCantList[] = {
* pidfile option description:
*/
/** Descriptive text for the pidfile option */
-#define PIDFILE_DESC (ntpd_opt_strs+1890)
+#define PIDFILE_DESC (ntpd_opt_strs+1948)
/** Upper-cased name for the pidfile option */
-#define PIDFILE_NAME (ntpd_opt_strs+1911)
+#define PIDFILE_NAME (ntpd_opt_strs+1969)
/** Name string for the pidfile option */
-#define PIDFILE_name (ntpd_opt_strs+1919)
+#define PIDFILE_name (ntpd_opt_strs+1977)
/** Compiled in flag settings for the pidfile option */
#define PIDFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -485,11 +486,11 @@ static int const aNoforkCantList[] = {
* priority option description:
*/
/** Descriptive text for the priority option */
-#define PRIORITY_DESC (ntpd_opt_strs+1927)
+#define PRIORITY_DESC (ntpd_opt_strs+1985)
/** Upper-cased name for the priority option */
-#define PRIORITY_NAME (ntpd_opt_strs+1944)
+#define PRIORITY_NAME (ntpd_opt_strs+2002)
/** Name string for the priority option */
-#define PRIORITY_name (ntpd_opt_strs+1953)
+#define PRIORITY_name (ntpd_opt_strs+2011)
/** Compiled in flag settings for the priority option */
#define PRIORITY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -499,11 +500,11 @@ static int const aNoforkCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the quit option */
-#define QUIT_DESC (ntpd_opt_strs+1962)
+#define QUIT_DESC (ntpd_opt_strs+2020)
/** Upper-cased name for the quit option */
-#define QUIT_NAME (ntpd_opt_strs+1984)
+#define QUIT_NAME (ntpd_opt_strs+2042)
/** Name string for the quit option */
-#define QUIT_name (ntpd_opt_strs+1989)
+#define QUIT_name (ntpd_opt_strs+2047)
/** Other options that appear in conjunction with the quit option */
static int const aQuitCantList[] = {
INDEX_OPT_SAVECONFIGQUIT,
@@ -515,11 +516,11 @@ static int const aQuitCantList[] = {
* propagationdelay option description:
*/
/** Descriptive text for the propagationdelay option */
-#define PROPAGATIONDELAY_DESC (ntpd_opt_strs+1994)
+#define PROPAGATIONDELAY_DESC (ntpd_opt_strs+2052)
/** Upper-cased name for the propagationdelay option */
-#define PROPAGATIONDELAY_NAME (ntpd_opt_strs+2022)
+#define PROPAGATIONDELAY_NAME (ntpd_opt_strs+2080)
/** Name string for the propagationdelay option */
-#define PROPAGATIONDELAY_name (ntpd_opt_strs+2039)
+#define PROPAGATIONDELAY_name (ntpd_opt_strs+2097)
/** Compiled in flag settings for the propagationdelay option */
#define PROPAGATIONDELAY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -530,11 +531,11 @@ static int const aQuitCantList[] = {
*/
#ifdef SAVECONFIG
/** Descriptive text for the saveconfigquit option */
-#define SAVECONFIGQUIT_DESC (ntpd_opt_strs+2056)
+#define SAVECONFIGQUIT_DESC (ntpd_opt_strs+2114)
/** Upper-cased name for the saveconfigquit option */
-#define SAVECONFIGQUIT_NAME (ntpd_opt_strs+2091)
+#define SAVECONFIGQUIT_NAME (ntpd_opt_strs+2149)
/** Name string for the saveconfigquit option */
-#define SAVECONFIGQUIT_name (ntpd_opt_strs+2106)
+#define SAVECONFIGQUIT_name (ntpd_opt_strs+2164)
/** Other options that appear in conjunction with the saveconfigquit option */
static int const aSaveconfigquitCantList[] = {
INDEX_OPT_QUIT,
@@ -555,11 +556,11 @@ static int const aSaveconfigquitCantList[] = {
* statsdir option description:
*/
/** Descriptive text for the statsdir option */
-#define STATSDIR_DESC (ntpd_opt_strs+2121)
+#define STATSDIR_DESC (ntpd_opt_strs+2179)
/** Upper-cased name for the statsdir option */
-#define STATSDIR_NAME (ntpd_opt_strs+2146)
+#define STATSDIR_NAME (ntpd_opt_strs+2204)
/** Name string for the statsdir option */
-#define STATSDIR_name (ntpd_opt_strs+2155)
+#define STATSDIR_name (ntpd_opt_strs+2213)
/** Compiled in flag settings for the statsdir option */
#define STATSDIR_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -568,11 +569,11 @@ static int const aSaveconfigquitCantList[] = {
* trustedkey option description:
*/
/** Descriptive text for the trustedkey option */
-#define TRUSTEDKEY_DESC (ntpd_opt_strs+2164)
+#define TRUSTEDKEY_DESC (ntpd_opt_strs+2222)
/** Upper-cased name for the trustedkey option */
-#define TRUSTEDKEY_NAME (ntpd_opt_strs+2183)
+#define TRUSTEDKEY_NAME (ntpd_opt_strs+2241)
/** Name string for the trustedkey option */
-#define TRUSTEDKEY_name (ntpd_opt_strs+2194)
+#define TRUSTEDKEY_name (ntpd_opt_strs+2252)
/** Compiled in flag settings for the trustedkey option */
#define TRUSTEDKEY_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -582,11 +583,11 @@ static int const aSaveconfigquitCantList[] = {
*/
#ifdef HAVE_DROPROOT
/** Descriptive text for the user option */
-#define USER_DESC (ntpd_opt_strs+2205)
+#define USER_DESC (ntpd_opt_strs+2263)
/** Upper-cased name for the user option */
-#define USER_NAME (ntpd_opt_strs+2239)
+#define USER_NAME (ntpd_opt_strs+2297)
/** Name string for the user option */
-#define USER_name (ntpd_opt_strs+2244)
+#define USER_name (ntpd_opt_strs+2302)
/** Compiled in flag settings for the user option */
#define USER_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -595,19 +596,19 @@ static int const aSaveconfigquitCantList[] = {
#define USER_FLAGS (OPTST_OMITTED | OPTST_NO_INIT)
#define USER_NAME NULL
/** Descriptive text for the user option */
-#define USER_DESC (ntpd_opt_strs+1490)
-#define USER_name (ntpd_opt_strs+2244)
+#define USER_DESC (ntpd_opt_strs+1548)
+#define USER_name (ntpd_opt_strs+2302)
#endif /* HAVE_DROPROOT */
/**
* updateinterval option description:
*/
/** Descriptive text for the updateinterval option */
-#define UPDATEINTERVAL_DESC (ntpd_opt_strs+2249)
+#define UPDATEINTERVAL_DESC (ntpd_opt_strs+2307)
/** Upper-cased name for the updateinterval option */
-#define UPDATEINTERVAL_NAME (ntpd_opt_strs+2313)
+#define UPDATEINTERVAL_NAME (ntpd_opt_strs+2371)
/** Name string for the updateinterval option */
-#define UPDATEINTERVAL_name (ntpd_opt_strs+2328)
+#define UPDATEINTERVAL_name (ntpd_opt_strs+2386)
/** Compiled in flag settings for the updateinterval option */
#define UPDATEINTERVAL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -616,11 +617,11 @@ static int const aSaveconfigquitCantList[] = {
* var option description:
*/
/** Descriptive text for the var option */
-#define VAR_DESC (ntpd_opt_strs+2343)
+#define VAR_DESC (ntpd_opt_strs+2401)
/** Upper-cased name for the var option */
-#define VAR_NAME (ntpd_opt_strs+2373)
+#define VAR_NAME (ntpd_opt_strs+2431)
/** Name string for the var option */
-#define VAR_name (ntpd_opt_strs+2377)
+#define VAR_name (ntpd_opt_strs+2435)
/** Compiled in flag settings for the var option */
#define VAR_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -629,11 +630,11 @@ static int const aSaveconfigquitCantList[] = {
* dvar option description:
*/
/** Descriptive text for the dvar option */
-#define DVAR_DESC (ntpd_opt_strs+2381)
+#define DVAR_DESC (ntpd_opt_strs+2439)
/** Upper-cased name for the dvar option */
-#define DVAR_NAME (ntpd_opt_strs+2415)
+#define DVAR_NAME (ntpd_opt_strs+2473)
/** Name string for the dvar option */
-#define DVAR_name (ntpd_opt_strs+2420)
+#define DVAR_name (ntpd_opt_strs+2478)
/** Compiled in flag settings for the dvar option */
#define DVAR_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -644,11 +645,11 @@ static int const aSaveconfigquitCantList[] = {
*/
#ifdef HAVE_WORKING_FORK
/** Descriptive text for the wait-sync option */
-#define WAIT_SYNC_DESC (ntpd_opt_strs+2425)
+#define WAIT_SYNC_DESC (ntpd_opt_strs+2483)
/** Upper-cased name for the wait-sync option */
-#define WAIT_SYNC_NAME (ntpd_opt_strs+2462)
+#define WAIT_SYNC_NAME (ntpd_opt_strs+2520)
/** Name string for the wait-sync option */
-#define WAIT_SYNC_name (ntpd_opt_strs+2472)
+#define WAIT_SYNC_name (ntpd_opt_strs+2530)
/** Other options that appear in conjunction with the wait-sync option */
static int const aWait_SyncCantList[] = {
INDEX_OPT_NOFORK,
@@ -670,11 +671,11 @@ static int const aWait_SyncCantList[] = {
* slew option description:
*/
/** Descriptive text for the slew option */
-#define SLEW_DESC (ntpd_opt_strs+2482)
+#define SLEW_DESC (ntpd_opt_strs+2540)
/** Upper-cased name for the slew option */
-#define SLEW_NAME (ntpd_opt_strs+2505)
+#define SLEW_NAME (ntpd_opt_strs+2563)
/** Name string for the slew option */
-#define SLEW_name (ntpd_opt_strs+2510)
+#define SLEW_name (ntpd_opt_strs+2568)
/** Compiled in flag settings for the slew option */
#define SLEW_FLAGS (OPTST_DISABLED)
@@ -683,11 +684,11 @@ static int const aWait_SyncCantList[] = {
*/
#ifdef SYS_WINNT
/** Descriptive text for the usepcc option */
-#define USEPCC_DESC (ntpd_opt_strs+2515)
+#define USEPCC_DESC (ntpd_opt_strs+2573)
/** Upper-cased name for the usepcc option */
-#define USEPCC_NAME (ntpd_opt_strs+2552)
+#define USEPCC_NAME (ntpd_opt_strs+2610)
/** Name string for the usepcc option */
-#define USEPCC_name (ntpd_opt_strs+2559)
+#define USEPCC_name (ntpd_opt_strs+2617)
/** Compiled in flag settings for the usepcc option */
#define USEPCC_FLAGS (OPTST_DISABLED)
@@ -703,11 +704,11 @@ static int const aWait_SyncCantList[] = {
*/
#ifdef SYS_WINNT
/** Descriptive text for the pccfreq option */
-#define PCCFREQ_DESC (ntpd_opt_strs+2566)
+#define PCCFREQ_DESC (ntpd_opt_strs+2624)
/** Upper-cased name for the pccfreq option */
-#define PCCFREQ_NAME (ntpd_opt_strs+2609)
+#define PCCFREQ_NAME (ntpd_opt_strs+2667)
/** Name string for the pccfreq option */
-#define PCCFREQ_name (ntpd_opt_strs+2617)
+#define PCCFREQ_name (ntpd_opt_strs+2675)
/** Compiled in flag settings for the pccfreq option */
#define PCCFREQ_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -724,11 +725,11 @@ static int const aWait_SyncCantList[] = {
*/
#ifdef HAVE_DNSREGISTRATION
/** Descriptive text for the mdns option */
-#define MDNS_DESC (ntpd_opt_strs+2625)
+#define MDNS_DESC (ntpd_opt_strs+2683)
/** Upper-cased name for the mdns option */
-#define MDNS_NAME (ntpd_opt_strs+2660)
+#define MDNS_NAME (ntpd_opt_strs+2718)
/** Name string for the mdns option */
-#define MDNS_name (ntpd_opt_strs+2665)
+#define MDNS_name (ntpd_opt_strs+2723)
/** Compiled in flag settings for the mdns option */
#define MDNS_FLAGS (OPTST_DISABLED)
@@ -742,11 +743,11 @@ static int const aWait_SyncCantList[] = {
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (ntpd_opt_strs+2670)
-#define HELP_name (ntpd_opt_strs+2714)
+#define HELP_DESC (ntpd_opt_strs+2728)
+#define HELP_name (ntpd_opt_strs+2772)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (ntpd_opt_strs+2719)
-#define MORE_HELP_name (ntpd_opt_strs+2764)
+#define MORE_HELP_DESC (ntpd_opt_strs+2777)
+#define MORE_HELP_name (ntpd_opt_strs+2822)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -759,8 +760,8 @@ static int const aWait_SyncCantList[] = {
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (ntpd_opt_strs+2774)
-#define VER_name (ntpd_opt_strs+2810)
+#define VER_DESC (ntpd_opt_strs+2832)
+#define VER_name (ntpd_opt_strs+2868)
/**
* Declare option callback procedures
*/
@@ -1230,21 +1231,21 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpd. */
-#define zPROGNAME (ntpd_opt_strs+2818)
+#define zPROGNAME (ntpd_opt_strs+2876)
/** Reference to the title line for ntpd usage. */
-#define zUsageTitle (ntpd_opt_strs+2823)
+#define zUsageTitle (ntpd_opt_strs+2881)
/** 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+2952)
+#define zBugsAddr (ntpd_opt_strs+3012)
/** Clarification/explanation of what ntpd does. */
-#define zExplain (ntpd_opt_strs+2986)
+#define zExplain (ntpd_opt_strs+3046)
/** Extra detail explaining what ntpd does. */
#define zDetail (NULL)
/** The full version string for ntpd. */
-#define zFullVersion (ntpd_opt_strs+2988)
+#define zFullVersion (ntpd_opt_strs+3048)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -1501,8 +1502,8 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpdOptions.pzCopyright */
- puts(_("ntpd 4.2.8\n\
-Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n\
+ puts(_("ntpd 4.2.8p1\n\
+Copyright (C) 1992-2015 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"));
@@ -1516,9 +1517,10 @@ 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 makes no\n\
-representations about the suitability this software for any purpose. It is\n\
-provided \"as is\" without express or implied warranty.\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"));
@@ -1638,7 +1640,7 @@ provided \"as is\" without express or implied warranty.\n"));
puts(_("output version information and exit"));
/* referenced via ntpdOptions.pzUsageTitle */
- puts(_("ntpd - NTP daemon program - Ver. 4.2.8\n\
+ puts(_("ntpd - NTP daemon program - Ver. 4.2.8p1\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
\t\t[ <server1> ... <serverN> ]\n"));
@@ -1646,7 +1648,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
puts(_("\n"));
/* referenced via ntpdOptions.pzFullVersion */
- puts(_("ntpd 4.2.8"));
+ puts(_("ntpd 4.2.8p1"));
/* referenced via ntpdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpd/ntpd-opts.h b/ntpd/ntpd-opts.h
index 2cfea535ac3e..f4eb47b8e355 100644
--- a/ntpd/ntpd-opts.h
+++ b/ntpd/ntpd-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpd-opts.h)
*
- * It has been AutoGen-ed December 19, 2014 at 07:46:32 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:39:16 AM by AutoGen 5.18.5pre4
* From the definitions ntpd-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpd program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -105,9 +105,9 @@ typedef enum {
/** count of all options for ntpd */
#define OPTION_CT 37
/** ntpd version */
-#define NTPD_VERSION "4.2.8"
+#define NTPD_VERSION "4.2.8p1"
/** Full ntpd version text */
-#define NTPD_FULL_VERSION "ntpd 4.2.8"
+#define NTPD_FULL_VERSION "ntpd 4.2.8p1"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpd/ntpd.1ntpdman b/ntpd/ntpd.1ntpdman
index 52bc51531421..4b37913615d5 100644
--- a/ntpd/ntpd.1ntpdman
+++ b/ntpd/ntpd.1ntpdman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpd 1ntpdman "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpd 1ntpdman "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-WBaqpd/ag-9Baiod)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-YYaqWo/ag-.YaiVo)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:48:58 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:41:54 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -959,9 +959,9 @@ RFC5908
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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
diff --git a/ntpd/ntpd.1ntpdmdoc b/ntpd/ntpd.1ntpdmdoc
index f390d2c48b50..96d77e9fb0db 100644
--- a/ntpd/ntpd.1ntpdmdoc
+++ b/ntpd/ntpd.1ntpdmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPD 1ntpdmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:14 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:12 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -867,9 +867,9 @@ A snapshot of this documentation is available in HTML format in
.%O RFC5908
.Re
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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
diff --git a/ntpd/ntpd.c b/ntpd/ntpd.c
index ef1baa7037a1..c017ef34d7db 100644
--- a/ntpd/ntpd.c
+++ b/ntpd/ntpd.c
@@ -168,8 +168,8 @@ int root_dropped;
char *user; /* User to switch to */
char *group; /* group to switch to */
const char *chrootdir; /* directory to chroot to */
-int sw_uid;
-int sw_gid;
+uid_t sw_uid;
+gid_t sw_gid;
char *endp;
struct group *gr;
struct passwd *pw;
@@ -937,6 +937,10 @@ getgroup:
msyslog(LOG_ERR, "Cannot setegid() to group `%s': %m", group);
exit (-1);
}
+ if (group)
+ setgroups(1, &sw_gid);
+ else
+ initgroups(pw->pw_name, pw->pw_gid);
if (user && setuid(sw_uid)) {
msyslog(LOG_ERR, "Cannot setuid() to user `%s': %m", user);
exit (-1);
diff --git a/ntpd/ntpd.html b/ntpd/ntpd.html
index 7d588dd6374d..fe00030dde2b 100644
--- a/ntpd/ntpd.html
+++ b/ntpd/ntpd.html
@@ -39,7 +39,7 @@ The program can operate in any of several modes, including client/server,
symmetric and broadcast modes, and with both symmetric-key and public-key
cryptography.
- <p>This document applies to version 4.2.8 of <code>ntpd</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntpd</code>.
<ul class="menu">
<li><a accesskey="1" href="#ntpd-Description">ntpd Description</a>: Description
@@ -219,7 +219,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8-x
+<pre class="example">ntpd - NTP daemon program - Ver. 4.2.8p1-RC2
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
diff --git a/ntpd/ntpd.man.in b/ntpd/ntpd.man.in
index c115a4d8a55d..a5403086ae83 100644
--- a/ntpd/ntpd.man.in
+++ b/ntpd/ntpd.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpd @NTPD_MS@ "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpd @NTPD_MS@ "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-WBaqpd/ag-9Baiod)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-YYaqWo/ag-.YaiVo)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:48:58 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:41:54 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -959,9 +959,9 @@ RFC5908
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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
diff --git a/ntpd/ntpd.mdoc.in b/ntpd/ntpd.mdoc.in
index bb24d02685e3..3017dc8d54d4 100644
--- a/ntpd/ntpd.mdoc.in
+++ b/ntpd/ntpd.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPD @NTPD_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:14 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:12 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -867,9 +867,9 @@ A snapshot of this documentation is available in HTML format in
.%O RFC5908
.Re
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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
diff --git a/ntpd/refclock_acts.c b/ntpd/refclock_acts.c
index 36322fd91a25..f62cc466b25c 100644
--- a/ntpd/refclock_acts.c
+++ b/ntpd/refclock_acts.c
@@ -343,7 +343,7 @@ acts_receive(
up->bufptr = up->buf;
acts_message(peer, up->buf);
}
- } else if (!iscntrl(*tptr)) {
+ } else if (!iscntrl((unsigned char)*tptr)) {
*up->bufptr++ = *tptr;
if (*tptr == '*' || *tptr == '#') {
up->tstamp = pp->lastrec;
@@ -515,7 +515,7 @@ acts_timeout(
up->unit);
fd = refclock_open(device, SPEED232, LDISC_ACTS |
LDISC_RAW | LDISC_REMOTE);
- if (fd <= 0) {
+ if (fd < 0) {
msyslog(LOG_ERR, "acts: open fails %m");
return;
}
diff --git a/ntpd/refclock_arc.c b/ntpd/refclock_arc.c
index b2c063e432ec..e5d4cb44086c 100644
--- a/ntpd/refclock_arc.c
+++ b/ntpd/refclock_arc.c
@@ -843,7 +843,7 @@ send_slow(
static int
get2(char *p, int *val)
{
- if (!isdigit((int)p[0]) || !isdigit((int)p[1])) return 0;
+ if (!isdigit((unsigned char)p[0]) || !isdigit((unsigned char)p[1])) return 0;
*val = (p[0] - '0') * 10 + p[1] - '0';
return 1;
}
@@ -851,7 +851,7 @@ get2(char *p, int *val)
static int
get1(char *p, int *val)
{
- if (!isdigit((int)p[0])) return 0;
+ if (!isdigit((unsigned char)p[0])) return 0;
*val = p[0] - '0';
return 1;
}
@@ -943,7 +943,7 @@ arc_receive(
#ifdef DEBUG
if(debug) { /* Show \r as `R', other non-printing char as `?'. */
printf("arc: stamp -->%c<-- (%d chars rcvd)\n",
- ((c == '\r') ? 'R' : (isgraph((int)c) ? c : '?')),
+ ((c == '\r') ? 'R' : (isgraph((unsigned char)c) ? c : '?')),
rbufp->recv_length);
}
#endif
diff --git a/ntpd/refclock_chu.c b/ntpd/refclock_chu.c
index 9c7093d2c212..6b1ae5554adf 100644
--- a/ntpd/refclock_chu.c
+++ b/ntpd/refclock_chu.c
@@ -967,15 +967,11 @@ chu_serial_receive(
struct recvbuf *rbufp /* receive buffer structure pointer */
)
{
- struct chuunit *up;
- struct refclockproc *pp;
struct peer *peer;
u_char *dpt; /* receive buffer pointer */
peer = rbufp->recv_peer;
- pp = peer->procptr;
- up = pp->unitptr;
dpt = (u_char *)&rbufp->recv_space;
chu_decode(peer, *dpt, rbufp->recv_time);
diff --git a/ntpd/refclock_gpsdjson.c b/ntpd/refclock_gpsdjson.c
index 615098271e3b..2171a4fff788 100644
--- a/ntpd/refclock_gpsdjson.c
+++ b/ntpd/refclock_gpsdjson.c
@@ -52,7 +52,7 @@
#if defined(HAVE_SYS_POLL_H)
# include <sys/poll.h>
-#elif defined(HAVE_SYS_SLECET_H)
+#elif defined(HAVE_SYS_SELECT_H)
# include <sys/select.h>
#else
# error need poll() or select()
@@ -204,8 +204,8 @@ static int syslogok(clockprocT * const pp, gpsd_unitT * const up);
* data and selecting the GPS device name we created from our unit
* number. [Note: This is a format string!]
*/
-static const char * s_logon =
- "?WATCH={\"enable\":true,\"json\":true,\"device\":\"%s\"};\r\n";
+#define s_logon \
+ "?WATCH={\"enable\":true,\"json\":true,\"device\":\"%s\"};\r\n"
/* We keep a static list of network addresses for 'localhost:gpsd', and
* we try to connect to them in round-robin fashion.
@@ -854,7 +854,7 @@ process_tpv(
const char * gps_time;
int gps_mode;
double ept, epp, epx, epy, epv;
- int log2;
+ int xlog2;
gps_mode = (int)json_object_lookup_int_default(
jctx, 0, "mode", 0);
@@ -920,9 +920,9 @@ process_tpv(
ept = min(ept, epp );
ept = min(ept, 0.5 );
ept = max(ept, 1.0-9);
- ept = frexp(ept, &log2);
+ ept = frexp(ept, &xlog2);
- peer->precision = log2;
+ peer->precision = xlog2;
}
/* ------------------------------------------------------------------ */
@@ -1270,7 +1270,7 @@ convert_ascii_time(
ep = strptime(gps_time, "%Y-%m-%dT%H:%M:%S", &gd);
if (*ep == '.') {
dw = 100000000;
- while (isdigit(*++ep)) {
+ while (isdigit((unsigned char)*++ep)) {
ts.tv_nsec += (*ep - '0') * dw;
dw /= 10;
}
diff --git a/ntpd/refclock_heath.c b/ntpd/refclock_heath.c
index 435d8f6c4ffb..aed056c91497 100644
--- a/ntpd/refclock_heath.c
+++ b/ntpd/refclock_heath.c
@@ -379,7 +379,7 @@ heath_receive(
/*
* Determine synchronization and last update
*/
- if (!isdigit((int)dsec))
+ if (!isdigit((unsigned char)dsec))
pp->leap = LEAP_NOTINSYNC;
else {
pp->nsec = (dsec - '0') * 100000000;
diff --git a/ntpd/refclock_irig.c b/ntpd/refclock_irig.c
index 46c01fbb7931..abc94f62e8fb 100644
--- a/ntpd/refclock_irig.c
+++ b/ntpd/refclock_irig.c
@@ -762,7 +762,7 @@ irig_baud(
* persist for lots of samples.
*/
up->exing = -up->yxing;
- if (fabs(up->envxing - up->envphase) <= 1) {
+ if (abs(up->envxing - up->envphase) <= 1) {
up->tcount++;
if (up->tcount > 20 * up->tc) {
up->tc++;
@@ -980,10 +980,8 @@ irig_poll(
)
{
struct refclockproc *pp;
- struct irigunit *up;
pp = peer->procptr;
- up = pp->unitptr;
if (pp->coderecv == pp->codeproc) {
refclock_report(peer, CEVNT_TIMEOUT);
diff --git a/ntpd/refclock_jjy.c b/ntpd/refclock_jjy.c
index d8ec6b7446c1..e279ee307d73 100644
--- a/ntpd/refclock_jjy.c
+++ b/ntpd/refclock_jjy.c
@@ -297,9 +297,9 @@ struct refclock refclock_jjy = {
static struct
{
- char commandNumber ;
- char *commandLog ;
- char *command ;
+ const char commandNumber ;
+ const char *commandLog ;
+ const char *command ;
int commandLength ;
} tristate_jjy01_command_sequence[] =
{
@@ -337,8 +337,8 @@ static struct
static struct
{
char commandNumber ;
- char *commandLog ;
- char *command ;
+ const char *commandLog ;
+ const char *command ;
int commandLength ;
} tristate_gpsclock01_command_sequence[] =
{
@@ -741,7 +741,7 @@ static int
jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_receive_tristate_jjy01" ;
+ static const char *sFunctionName = "jjy_receive_tristate_jjy01" ;
#endif
struct jjyunit *up ;
@@ -756,7 +756,7 @@ jjy_receive_tristate_jjy01 ( struct recvbuf *rbufp )
char sLogText [ MAX_LOGTEXT ], sReplyText [ MAX_LOGTEXT ] ;
- char *pCmd ;
+ const char *pCmd ;
int iCmdLen ;
/*
@@ -930,7 +930,7 @@ static int
jjy_receive_cdex_jst2000 ( struct recvbuf *rbufp )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_receive_cdex_jst2000" ;
+ static const char *sFunctionName = "jjy_receive_cdex_jst2000" ;
#endif
struct jjyunit *up ;
@@ -1010,7 +1010,7 @@ static int
jjy_receive_echokeisokuki_lt2000 ( struct recvbuf *rbufp )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_receive_echokeisokuki_lt2000" ;
+ static const char *sFunctionName = "jjy_receive_echokeisokuki_lt2000" ;
#endif
struct jjyunit *up ;
@@ -1052,7 +1052,7 @@ jjy_receive_echokeisokuki_lt2000 ( struct recvbuf *rbufp )
if ( up->operationmode == 1 ) {
#ifdef DEBUG
if ( debug ) {
- printf ( "%s (refclock_jjy.c) : send '#'\n", sFunctionName ) ;
+ printf ( "%s (refclock_jjy.c) : send '#'\n", __func__ ) ;
}
#endif
if ( write ( pp->io.fd, "#",1 ) != 1 ) {
@@ -1169,7 +1169,7 @@ static int
jjy_receive_citizentic_jjy200 ( struct recvbuf *rbufp )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_receive_citizentic_jjy200" ;
+ static const char *sFunctionName = "jjy_receive_citizentic_jjy200" ;
#endif
struct jjyunit *up ;
@@ -1264,7 +1264,7 @@ static int
jjy_receive_tristate_gpsclock01 ( struct recvbuf *rbufp )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_receive_tristate_gpsclock01" ;
+ static const char *sFunctionName = "jjy_receive_tristate_gpsclock01" ;
#endif
struct jjyunit *up ;
@@ -1279,7 +1279,7 @@ jjy_receive_tristate_gpsclock01 ( struct recvbuf *rbufp )
char sLogText [ MAX_LOGTEXT ], sReplyText [ MAX_LOGTEXT ] ;
- char *pCmd ;
+ const char *pCmd ;
int iCmdLen ;
/*
@@ -1519,13 +1519,13 @@ static void
jjy_poll_tristate_jjy01 ( int unit, struct peer *peer )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_poll_tristate_jjy01" ;
+ static const char *sFunctionName = "jjy_poll_tristate_jjy01" ;
#endif
struct jjyunit *up;
struct refclockproc *pp;
- char *pCmd ;
+ const char *pCmd ;
int iCmdLen ;
pp = peer->procptr;
@@ -1641,13 +1641,13 @@ static void
jjy_poll_tristate_gpsclock01 ( int unit, struct peer *peer )
{
#ifdef DEBUG
- static char *sFunctionName = "jjy_poll_tristate_gpsclock01" ;
+ static const char *sFunctionName = "jjy_poll_tristate_gpsclock01" ;
#endif
struct jjyunit *up;
struct refclockproc *pp;
- char *pCmd ;
+ const char *pCmd ;
int iCmdLen ;
pp = peer->procptr;
@@ -1690,7 +1690,7 @@ jjy_poll_tristate_gpsclock01 ( int unit, struct peer *peer )
static void
printableString ( char *sOutput, int iOutputLen, char *sInput, int iInputLen )
{
- char *printableControlChar[] = {
+ const char *printableControlChar[] = {
"<NUL>", "<SOH>", "<STX>", "<ETX>",
"<EOT>", "<ENQ>", "<ACK>", "<BEL>",
"<BS>" , "<HT>" , "<LF>" , "<VT>" ,
@@ -1700,16 +1700,15 @@ printableString ( char *sOutput, int iOutputLen, char *sInput, int iInputLen )
"<CAN>", "<EM>" , "<SUB>", "<ESC>",
"<FS>" , "<GS>" , "<RS>" , "<US>" ,
" " } ;
+
+ size_t i, j, n ;
size_t InputLen;
size_t OutputLen;
- size_t i;
- size_t j;
- size_t n;
InputLen = (size_t)iInputLen;
OutputLen = (size_t)iOutputLen;
for ( i = j = 0 ; i < InputLen && j < OutputLen ; i ++ ) {
- if ( isprint( sInput[i] ) ) {
+ if ( isprint( (unsigned char)sInput[i] ) ) {
n = 1 ;
if ( j + 1 >= OutputLen )
break ;
@@ -1732,7 +1731,7 @@ printableString ( char *sOutput, int iOutputLen, char *sInput, int iInputLen )
j += n ;
}
- sOutput[min(j, iOutputLen - 1)] = '\0' ;
+ sOutput[min(j, (size_t)iOutputLen - 1)] = '\0' ;
}
diff --git a/ntpd/refclock_jupiter.c b/ntpd/refclock_jupiter.c
index 377fc563229a..02b33dfb338d 100644
--- a/ntpd/refclock_jupiter.c
+++ b/ntpd/refclock_jupiter.c
@@ -136,8 +136,8 @@ static int jupiter_config (struct instance *);
static void jupiter_debug (struct peer *, const char *,
const char *, ...)
__attribute__ ((format (printf, 3, 4)));
-static char * jupiter_parse_t (struct instance *, u_short *);
-static char * jupiter_parse_gpos (struct instance *, u_short *);
+static const char * jupiter_parse_t (struct instance *, u_short *);
+static const char * jupiter_parse_gpos (struct instance *, u_short *);
static void jupiter_platform (struct instance *, u_int);
static void jupiter_poll (int, struct peer *);
static void jupiter_control (int, const struct refclockstat *,
@@ -275,7 +275,7 @@ jupiter_shutdown(int unit, struct peer *peer)
static int
jupiter_config(struct instance *instance)
{
- jupiter_debug(instance->peer, "jupiter_config", "init receiver");
+ jupiter_debug(instance->peer, __func__, "init receiver");
/*
* Initialize the unit variables
@@ -283,8 +283,7 @@ jupiter_config(struct instance *instance)
instance->sloppyclockflag = instance->peer->procptr->sloppyclockflag;
instance->moving = !!(instance->sloppyclockflag & CLK_FLAG2);
if (instance->moving)
- jupiter_debug(instance->peer, "jupiter_config",
- "mobile platform");
+ jupiter_debug(instance->peer, __func__, "mobile platform");
instance->pollcnt = 2;
instance->polled = 0;
@@ -368,7 +367,7 @@ jupiter_ppsapi(
#if DEBUG
if (debug) {
time_pps_getparams(instance->pps_handle, &instance->pps_params);
- jupiter_debug(instance->peer, "refclock_jupiter",
+ jupiter_debug(instance->peer, __func__,
"pps capability 0x%x version %d mode 0x%x kern %d",
capability, instance->pps_params.api_version,
instance->pps_params.mode, instance->hardpps);
@@ -498,8 +497,7 @@ jupiter_control(
instance->sloppyclockflag = pp->sloppyclockflag;
if ((instance->sloppyclockflag & CLK_FLAG2) !=
(sloppyclockflag & CLK_FLAG2)) {
- jupiter_debug(peer,
- "jupiter_control",
+ jupiter_debug(peer, __func__,
"mode switch: reset receiver");
jupiter_config(instance);
return;
@@ -513,10 +511,11 @@ jupiter_control(
static void
jupiter_receive(struct recvbuf *rbufp)
{
- int bpcnt, cc, size, ppsret;
+ size_t bpcnt;
+ int cc, size, ppsret;
time_t last_timecode;
u_int32 laststime;
- char *cp;
+ const char *cp;
u_char *bp;
u_short *sp;
struct jid *ip;
@@ -535,7 +534,7 @@ jupiter_receive(struct recvbuf *rbufp)
bpcnt = rbufp->recv_length;
/* This shouldn't happen */
- if (bpcnt > (int)sizeof(instance->sbuf) - instance->ssize)
+ if (bpcnt > sizeof(instance->sbuf) - instance->ssize)
bpcnt = sizeof(instance->sbuf) - instance->ssize;
/* Append to input buffer */
@@ -543,7 +542,7 @@ jupiter_receive(struct recvbuf *rbufp)
instance->ssize += bpcnt;
/* While there's at least a header and we parse an intact message */
- while (instance->ssize > sizeof(*hp) && (cc = jupiter_recv(instance)) > 0) {
+ while (instance->ssize > (int)sizeof(*hp) && (cc = jupiter_recv(instance)) > 0) {
instance->pollcnt = 2;
tstamp = rbufp->recv_time;
@@ -554,8 +553,8 @@ jupiter_receive(struct recvbuf *rbufp)
case JUPITER_O_PULSE:
if (size != sizeof(struct jpulse)) {
- jupiter_debug(peer,
- "jupiter_receive", "pulse: len %d != %u",
+ jupiter_debug(peer, __func__,
+ "pulse: len %d != %u",
size, (int)sizeof(struct jpulse));
refclock_report(peer, CEVNT_BADREPLY);
break;
@@ -574,7 +573,7 @@ jupiter_receive(struct recvbuf *rbufp)
laststime = instance->stime;
instance->stime = DS2UI(((struct jpulse *)sp)->stime);
if (laststime != 0 && instance->stime - laststime <= 21) {
- jupiter_debug(peer, "jupiter_receive",
+ jupiter_debug(peer, __func__,
"avoided firmware bug (stime %.2f, laststime %.2f)",
(double)instance->stime * 0.01, (double)laststime * 0.01);
break;
@@ -595,8 +594,8 @@ jupiter_receive(struct recvbuf *rbufp)
/* Parse timecode (even when there's no pps) */
last_timecode = instance->timecode;
if ((cp = jupiter_parse_t(instance, sp)) != NULL) {
- jupiter_debug(peer,
- "jupiter_receive", "pulse: %s", cp);
+ jupiter_debug(peer, __func__,
+ "pulse: %s", cp);
break;
}
@@ -645,24 +644,24 @@ jupiter_receive(struct recvbuf *rbufp)
case JUPITER_O_GPOS:
if (size != sizeof(struct jgpos)) {
- jupiter_debug(peer,
- "jupiter_receive", "gpos: len %d != %u",
+ jupiter_debug(peer, __func__,
+ "gpos: len %d != %u",
size, (int)sizeof(struct jgpos));
refclock_report(peer, CEVNT_BADREPLY);
break;
}
if ((cp = jupiter_parse_gpos(instance, sp)) != NULL) {
- jupiter_debug(peer,
- "jupiter_receive", "gpos: %s", cp);
+ jupiter_debug(peer, __func__,
+ "gpos: %s", cp);
break;
}
break;
case JUPITER_O_ID:
if (size != sizeof(struct jid)) {
- jupiter_debug(peer,
- "jupiter_receive", "id: len %d != %u",
+ jupiter_debug(peer, __func__,
+ "id: len %d != %u",
size, (int)sizeof(struct jid));
refclock_report(peer, CEVNT_BADREPLY);
break;
@@ -672,8 +671,8 @@ jupiter_receive(struct recvbuf *rbufp)
* just powered instance, it needs to be reconfigured.
*/
ip = (struct jid *)sp;
- jupiter_debug(peer,
- "jupiter_receive", "%s chan ver %s, %s (%s)",
+ jupiter_debug(peer, __func__,
+ "%s chan ver %s, %s (%s)",
ip->chans, ip->vers, ip->date, ip->opts);
msyslog(LOG_DEBUG,
"jupiter_receive: %s chan ver %s, %s (%s)",
@@ -681,8 +680,7 @@ jupiter_receive(struct recvbuf *rbufp)
if (instance->wantid)
instance->wantid = 0;
else {
- jupiter_debug(peer,
- "jupiter_receive", "reset receiver");
+ jupiter_debug(peer, __func__, "reset receiver");
jupiter_config(instance);
/*
* Restore since jupiter_config() just
@@ -693,8 +691,7 @@ jupiter_receive(struct recvbuf *rbufp)
break;
default:
- jupiter_debug(peer,
- "jupiter_receive", "unknown message id %d",
+ jupiter_debug(peer, __func__, "unknown message id %d",
getshort(hp->id));
break;
}
@@ -707,7 +704,7 @@ jupiter_receive(struct recvbuf *rbufp)
}
}
-static char *
+static const char *
jupiter_parse_t(struct instance *instance, u_short *sp)
{
struct tm *tm;
@@ -757,8 +754,8 @@ jupiter_parse_t(struct instance *instance, u_short *sp)
}
else if (sweek == 0 && instance->lastsweek == WEEKSECS - 1) {
++instance->gweek;
- jupiter_debug(instance->peer,
- "jupiter_parse_t", "NEW gps week %u", instance->gweek);
+ jupiter_debug(instance->peer, __func__,
+ "NEW gps week %u", instance->gweek);
}
/*
@@ -774,14 +771,14 @@ jupiter_parse_t(struct instance *instance, u_short *sp)
* Then we warped.
*/
if (instance->lastsweek == sweek)
- jupiter_debug(instance->peer,
- "jupiter_parse_t", "gps sweek not incrementing (%d)",
+ jupiter_debug(instance->peer, __func__,
+ "gps sweek not incrementing (%d)",
sweek);
else if (instance->lastsweek != 2 * WEEKSECS &&
instance->lastsweek + 1 != sweek &&
!(sweek == 0 && instance->lastsweek == WEEKSECS - 1))
- jupiter_debug(instance->peer,
- "jupiter_parse_t", "gps sweek jumped (was %d, now %d)",
+ jupiter_debug(instance->peer, __func__,
+ "gps sweek jumped (was %d, now %d)",
instance->lastsweek, sweek);
instance->lastsweek = sweek;
@@ -792,16 +789,16 @@ jupiter_parse_t(struct instance *instance, u_short *sp)
if (last_timecode == 0)
/* XXX debugging */
- jupiter_debug(instance->peer,
- "jupiter_parse_t", "UTC <none> (gweek/sweek %u/%u)",
+ jupiter_debug(instance->peer, __func__,
+ "UTC <none> (gweek/sweek %u/%u)",
instance->gweek, sweek);
else {
/* XXX debugging */
tm = gmtime(&last_timecode);
cp = asctime(tm);
- jupiter_debug(instance->peer,
- "jupiter_parse_t", "UTC %.24s (gweek/sweek %u/%u)",
+ jupiter_debug(instance->peer, __func__,
+ "UTC %.24s (gweek/sweek %u/%u)",
cp, instance->gweek, sweek);
/* Billboard last_timecode (which is now the current time) */
@@ -829,7 +826,7 @@ jupiter_parse_t(struct instance *instance, u_short *sp)
return (NULL);
}
-static char *
+static const char *
jupiter_parse_gpos(struct instance *instance, u_short *sp)
{
struct jgpos *jg;
@@ -861,8 +858,8 @@ jupiter_parse_gpos(struct instance *instance, u_short *sp)
tm = gmtime(&t);
cp = asctime(tm);
- jupiter_debug(instance->peer,
- "jupiter_parse_g", "GPS %.24s (gweek/sweek %u/%u)",
+ jupiter_debug(instance->peer, __func__,
+ "GPS %.24s (gweek/sweek %u/%u)",
cp, instance->gpos_gweek, instance->gpos_sweek);
return (NULL);
}
@@ -903,7 +900,7 @@ static char *
jupiter_send(struct instance *instance, struct jheader *hp)
{
u_int len, size;
- int cc;
+ ssize_t cc;
u_short *sp;
static char errstr[132];
@@ -921,7 +918,7 @@ jupiter_send(struct instance *instance, struct jheader *hp)
msnprintf(errstr, sizeof(errstr), "write: %m");
return (errstr);
} else if (cc != (int)size) {
- snprintf(errstr, sizeof(errstr), "short write (%d != %u)", cc, size);
+ snprintf(errstr, sizeof(errstr), "short write (%zd != %u)", cc, size);
return (errstr);
}
return (NULL);
@@ -954,7 +951,7 @@ jupiter_reqmsg(struct instance *instance, u_int id,
rp->trigger = putshort(interval == 0);
rp->interval = putshort(interval);
if ((cp = jupiter_send(instance, hp)) != NULL)
- jupiter_debug(instance->peer, "jupiter_reqmsg", "%u: %s", id, cp);
+ jupiter_debug(instance->peer, __func__, "%u: %s", id, cp);
}
/* Cancel periodic message output */
@@ -973,7 +970,7 @@ jupiter_canmsg(struct instance *instance, u_int id)
hp = &canmsg;
hp->id = putshort(id);
if ((cp = jupiter_send(instance, hp)) != NULL)
- jupiter_debug(instance->peer, "jupiter_canmsg", "%u: %s", id, cp);
+ jupiter_debug(instance->peer, __func__, "%u: %s", id, cp);
}
/* Request a single message output */
@@ -992,7 +989,7 @@ jupiter_reqonemsg(struct instance *instance, u_int id)
hp = &reqonemsg;
hp->id = putshort(id);
if ((cp = jupiter_send(instance, hp)) != NULL)
- jupiter_debug(instance->peer, "jupiter_reqonemsg", "%u: %s", id, cp);
+ jupiter_debug(instance->peer, __func__, "%u: %s", id, cp);
}
/* Set the platform dynamics */
@@ -1017,7 +1014,7 @@ jupiter_platform(struct instance *instance, u_int platform)
pp = &platmsg.jplat;
pp->platform = putshort(platform);
if ((cp = jupiter_send(instance, hp)) != NULL)
- jupiter_debug(instance->peer, "jupiter_platform", "%u: %s", platform, cp);
+ jupiter_debug(instance->peer, __func__, "%u: %s", platform, cp);
}
/* Checksum "len" shorts */
@@ -1054,13 +1051,14 @@ jupiter_recv(struct instance *instance)
hp = (struct jheader *)sp;
if (getshort(hp->sync) != JUPITER_SYNC) {
/* Wasn't at the front, sync up */
- jupiter_debug(instance->peer, "jupiter_recv", "syncing");
+ jupiter_debug(instance->peer, __func__, "syncing");
bp = (u_char *)sp;
n = size;
while (n >= 2) {
if (bp[0] != (JUPITER_SYNC & 0xff)) {
/*
- jupiter_debug(instance->peer, "{0x%x}", bp[0]);
+ jupiter_debug(instance->peer, __func__,
+ "{0x%x}", bp[0]);
*/
++bp;
--n;
@@ -1069,13 +1067,14 @@ jupiter_recv(struct instance *instance)
if (bp[1] == ((JUPITER_SYNC >> 8) & 0xff))
break;
/*
- jupiter_debug(instance->peer, "{0x%x 0x%x}", bp[0], bp[1]);
+ jupiter_debug(instance->peer, __func__,
+ "{0x%x 0x%x}", bp[0], bp[1]);
*/
bp += 2;
n -= 2;
}
/*
- jupiter_debug(instance->peer, "\n");
+ jupiter_debug(instance->peer, __func__, "\n");
*/
/* Shuffle data to front of input buffer */
if (n > 0)
@@ -1088,7 +1087,7 @@ jupiter_recv(struct instance *instance)
if (jupiter_cksum(sp, (cc / sizeof(u_short) - 1)) !=
getshort(hp->hsum)) {
- jupiter_debug(instance->peer, "jupiter_recv", "bad header checksum!");
+ jupiter_debug(instance->peer, __func__, "bad header checksum!");
/* This is drastic but checksum errors should be rare */
instance->ssize = 0;
return (0);
@@ -1106,7 +1105,7 @@ jupiter_recv(struct instance *instance)
sp = (u_short *)(hp + 1);
if (jupiter_cksum(sp, len) != getshort(sp[len])) {
jupiter_debug(instance->peer,
- "jupiter_recv", "bad payload checksum!");
+ __func__, "bad payload checksum!");
/* This is drastic but checksum errors should be rare */
instance->ssize = 0;
return (0);
diff --git a/ntpd/refclock_mx4200.c b/ntpd/refclock_mx4200.c
index 16f83f0c91e8..c9422290d39a 100644
--- a/ntpd/refclock_mx4200.c
+++ b/ntpd/refclock_mx4200.c
@@ -1572,7 +1572,7 @@ mx4200_debug(struct peer *peer, char *fmt, ...)
* Print debug message to stdout
* In the future, we may want to get get more creative...
*/
- vprintf(fmt, ap);
+ mvprintf(fmt, ap);
va_end(ap);
}
@@ -1613,11 +1613,11 @@ mx4200_send(peer, fmt, va_alist)
cp = buf;
*cp++ = '$';
- n = vsnprintf(cp, sizeof(buf) - 1, fmt, ap);
+ n = VSNPRINTF((cp, sizeof(buf) - 1, fmt, ap));
ck = mx4200_cksum(cp, n);
cp += n;
++n;
- n += snprintf(cp, sizeof(buf) - n - 5, "*%02X\r\n", ck);
+ n += SNPRINTF((cp, sizeof(buf) - n - 5, "*%02X\r\n", ck));
m = write(pp->io.fd, buf, (unsigned)n);
if (m < 0)
diff --git a/ntpd/refclock_neoclock4x.c b/ntpd/refclock_neoclock4x.c
index a0067e9c4675..6fda0f0785be 100644
--- a/ntpd/refclock_neoclock4x.c
+++ b/ntpd/refclock_neoclock4x.c
@@ -143,7 +143,7 @@ static void neol_jdn_to_ymd (unsigned long, int *, int *, int *);
static void neol_localtime (unsigned long, int* , int*, int*, int*, int*, int*);
static unsigned long neol_mktime (int, int, int, int, int, int);
#if !defined(NEOCLOCK4X_FIRMWARE)
-static int neol_query_firmware (int, int, char *, int);
+static int neol_query_firmware (int, int, char *, size_t);
static int neol_check_firmware (int, const char*, char *);
#endif
@@ -785,9 +785,9 @@ neol_hexatoi_len(const char str[],
int i;
int n = 0;
- for(i=0; isxdigit((int)str[i]) && i < maxlen; i++)
+ for(i=0; isxdigit((unsigned char)str[i]) && i < maxlen; i++)
{
- hexdigit = isdigit((int)str[i]) ? toupper(str[i]) - '0' : toupper(str[i]) - 'A' + 10;
+ hexdigit = isdigit((unsigned char)str[i]) ? toupper((unsigned char)str[i]) - '0' : toupper((unsigned char)str[i]) - 'A' + 10;
n = 16 * n + hexdigit;
}
*result = n;
@@ -803,7 +803,7 @@ neol_atoi_len(const char str[],
int i;
int n = 0;
- for(i=0; isdigit((int)str[i]) && i < maxlen; i++)
+ for(i=0; isdigit((unsigned char)str[i]) && i < maxlen; i++)
{
digit = str[i] - '0';
n = 10 * n + digit;
@@ -898,10 +898,10 @@ static int
neol_query_firmware(int fd,
int unit,
char *firmware,
- int maxlen)
+ size_t maxlen)
{
char tmpbuf[256];
- int len;
+ size_t len;
int lastsearch;
unsigned char c;
int last_c_was_crlf;
@@ -1001,7 +1001,7 @@ neol_query_firmware(int fd,
tmpbuf[len++] = (char) c;
}
tmpbuf[len] = '\0';
- if(len > sizeof(tmpbuf)-5)
+ if (len > sizeof(tmpbuf)-5)
break;
}
}
diff --git a/ntpd/refclock_nmea.c b/ntpd/refclock_nmea.c
index 58867f47b3d5..126b53026a9e 100644
--- a/ntpd/refclock_nmea.c
+++ b/ntpd/refclock_nmea.c
@@ -29,6 +29,9 @@
#include <sys/stat.h>
#include <stdio.h>
#include <ctype.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
#include "ntpd.h"
#include "ntp_io.h"
@@ -311,7 +314,7 @@ static int unfold_century (struct calendar * jd, u_int32 rec_ui);
static int gpsfix_century (struct calendar * jd, const gps_weektm * wd,
u_short * ccentury);
static l_fp eval_gps_time (struct peer * peer, const struct calendar * gpst,
- const struct timespec * gpso, const l_fp * recv);
+ const struct timespec * gpso, const l_fp * xrecv);
static int nmead_open (const char * device);
static void save_ltc (struct refclockproc * const, const char * const,
@@ -406,7 +409,7 @@ nmea_start(
size_t devlen;
u_int32 rate;
int baudrate;
- char * baudtext;
+ const char * baudtext;
/* Get baudrate choice from mode byte bits 4/5/6 */
@@ -1145,7 +1148,7 @@ nmea_poll(
*/
if (peer->ttl & NMEA_EXTLOG_MASK) {
/* Log & reset counters with extended logging */
- char *nmea = pp->a_lastcode;
+ const char *nmea = pp->a_lastcode;
if (*nmea == '\0') nmea = "(none)";
mprintf_clock_stats(
&peer->srcadr, "%s %u %u %u %u %u %u",
@@ -1779,7 +1782,7 @@ eval_gps_time(
struct peer * peer, /* for logging etc */
const struct calendar * gpst, /* GPS time stamp */
const struct timespec * tofs, /* GPS frac second & offset */
- const l_fp * recv /* receive time stamp */
+ const l_fp * xrecv /* receive time stamp */
)
{
struct refclockproc * const pp = peer->procptr;
@@ -1835,7 +1838,7 @@ eval_gps_time(
}
/* - get unfold base: day of full recv time - 512 weeks */
- vi64 = ntpcal_ntp_to_ntp(recv->l_ui, NULL);
+ vi64 = ntpcal_ntp_to_ntp(xrecv->l_ui, NULL);
rs64 = ntpcal_daysplit(&vi64);
rcv_sec = rs64.lo;
rcv_day = rs64.hi - 512 * 7;
@@ -1845,7 +1848,7 @@ eval_gps_time(
* fractional day of the receive time, we shift the base day for
* the unfold by 1. */
if ( gps_sec < rcv_sec
- || (gps_sec == rcv_sec && retv.l_uf < recv->l_uf))
+ || (gps_sec == rcv_sec && retv.l_uf < xrecv->l_uf))
rcv_day += 1;
/* - don't warp ahead of GPS invention! */
diff --git a/ntpd/refclock_oncore.c b/ntpd/refclock_oncore.c
index 3bc60bf50321..30924b8bbc2d 100644
--- a/ntpd/refclock_oncore.c
+++ b/ntpd/refclock_oncore.c
@@ -328,7 +328,7 @@ struct instance {
u_char printed;
u_char polled;
u_long ev_serial;
- int Rcvptr;
+ unsigned Rcvptr;
u_char Rcvbuf[500];
u_char BEHa[160]; /* Ba, Ea or Ha */
u_char BEHn[80]; /* Bn , En , or Hn */
@@ -436,47 +436,47 @@ static struct msg_desc {
int shmem;
} oncore_messages[] = {
/* Ea and En first since they're most common */
- { "Ea", 76, oncore_msg_BaEaHa, "mdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdimsdimsdimsdimsdimsdsC" },
- { "Ba", 68, oncore_msg_BaEaHa, "mdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdimsdimsdimsdsC" },
- { "Ha", 154, oncore_msg_BaEaHa, "mdyyhmsffffaaaaoooohhhhmmmmaaaaoooohhhhmmmmVVvvhhddntimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddssrrccooooTTushmvvvvvvC" },
- { "Bn", 59, oncore_msg_BnEnHn, "otaapxxxxxxxxxxpysreensffffsffffsffffsffffsffffsffffC" },
- { "En", 69, oncore_msg_BnEnHn, "otaapxxxxxxxxxxpysreensffffsffffsffffsffffsffffsffffsffffsffffC" },
- { "Hn", 78, oncore_msg_BnEnHn, "" },
- { "Ab", 10, 0, "" },
- { "Ac", 11, 0, "" },
- { "Ad", 11, oncore_msg_Adef, "" },
- { "Ae", 11, oncore_msg_Adef, "" },
- { "Af", 15, oncore_msg_Adef, "" },
- { "Ag", 8, oncore_msg_Ag, "" }, /* Satellite mask angle */
- { "As", 20, oncore_msg_As, "" },
- { "At", 8, oncore_msg_At, "" },
- { "Au", 12, 0, "" },
- { "Av", 8, 0, "" },
- { "Aw", 8, 0, "" },
- { "Ay", 11, oncore_msg_Ay, "" },
- { "Az", 11, oncore_msg_Az, "" },
- { "AB", 8, 0, "" },
- { "Bb", 92, 0, "" },
- { "Bd", 23, oncore_msg_Bd, "" },
- { "Bj", 8, oncore_msg_Bj, "" },
- { "Bl", 41, oncore_msg_Bl, "" },
- { "Ca", 9, oncore_msg_CaFaIa, "" },
- { "Cb", 33, oncore_msg_Cb, "" },
- { "Cf", 7, oncore_msg_Cf, "" },
- { "Cg", 8, 0, "" },
- { "Ch", 9, 0, "" },
- { "Cj", 294, oncore_msg_Cj, "" },
- { "Ek", 71, 0, "" },
- { "Fa", 9, oncore_msg_CaFaIa, "" },
- { "Ga", 20, oncore_msg_Ga, "" },
- { "Gb", 17, oncore_msg_Gb, "" },
- { "Gc", 8, oncore_msg_Gc, "" },
- { "Gd", 8, 0, "" },
- { "Ge", 8, 0, "" },
- { "Gj", 21, oncore_msg_Gj, "" },
- { "Ia", 10, oncore_msg_CaFaIa, "" },
- { "Sz", 8, oncore_msg_Sz, "" },
- { {0}, 7, 0, "" }
+ { "Ea", 76, oncore_msg_BaEaHa, "mdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdimsdimsdimsdimsdimsdsC", 0 },
+ { "Ba", 68, oncore_msg_BaEaHa, "mdyyhmsffffaaaaoooohhhhmmmmvvhhddtntimsdimsdimsdimsdimsdimsdsC", 0 },
+ { "Ha", 154, oncore_msg_BaEaHa, "mdyyhmsffffaaaaoooohhhhmmmmaaaaoooohhhhmmmmVVvvhhddntimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddimsiddssrrccooooTTushmvvvvvvC", 0 },
+ { "Bn", 59, oncore_msg_BnEnHn, "otaapxxxxxxxxxxpysreensffffsffffsffffsffffsffffsffffC", 0 },
+ { "En", 69, oncore_msg_BnEnHn, "otaapxxxxxxxxxxpysreensffffsffffsffffsffffsffffsffffsffffsffffC", 0 },
+ { "Hn", 78, oncore_msg_BnEnHn, "", 0 },
+ { "Ab", 10, 0, "", 0 },
+ { "Ac", 11, 0, "", 0 },
+ { "Ad", 11, oncore_msg_Adef, "", 0 },
+ { "Ae", 11, oncore_msg_Adef, "", 0 },
+ { "Af", 15, oncore_msg_Adef, "", 0 },
+ { "Ag", 8, oncore_msg_Ag, "", 0 }, /* Satellite mask angle */
+ { "As", 20, oncore_msg_As, "", 0 },
+ { "At", 8, oncore_msg_At, "", 0 },
+ { "Au", 12, 0, "", 0 },
+ { "Av", 8, 0, "", 0 },
+ { "Aw", 8, 0, "", 0 },
+ { "Ay", 11, oncore_msg_Ay, "", 0 },
+ { "Az", 11, oncore_msg_Az, "", 0 },
+ { "AB", 8, 0, "", 0 },
+ { "Bb", 92, 0, "", 0 },
+ { "Bd", 23, oncore_msg_Bd, "", 0 },
+ { "Bj", 8, oncore_msg_Bj, "", 0 },
+ { "Bl", 41, oncore_msg_Bl, "", 0 },
+ { "Ca", 9, oncore_msg_CaFaIa, "", 0 },
+ { "Cb", 33, oncore_msg_Cb, "", 0 },
+ { "Cf", 7, oncore_msg_Cf, "", 0 },
+ { "Cg", 8, 0, "", 0 },
+ { "Ch", 9, 0, "", 0 },
+ { "Cj", 294, oncore_msg_Cj, "", 0 },
+ { "Ek", 71, 0, "", 0 },
+ { "Fa", 9, oncore_msg_CaFaIa, "", 0 },
+ { "Ga", 20, oncore_msg_Ga, "", 0 },
+ { "Gb", 17, oncore_msg_Gb, "", 0 },
+ { "Gc", 8, oncore_msg_Gc, "", 0 },
+ { "Gd", 8, 0, "", 0 },
+ { "Ge", 8, 0, "", 0 },
+ { "Gj", 21, oncore_msg_Gj, "", 0 },
+ { "Ia", 10, oncore_msg_CaFaIa, "", 0 },
+ { "Sz", 8, oncore_msg_Sz, "", 0 },
+ { {0}, 7, 0, "", 0 }
};
@@ -848,7 +848,7 @@ oncore_ppsapi(
)
{
int cap, mode, mode1;
- char *cp;
+ const char *cp;
if (time_pps_getcap(instance->pps_h, &cap) < 0) {
oncore_log_f(instance, LOG_ERR, "time_pps_getcap failed: %m");
@@ -932,11 +932,11 @@ oncore_init_shmem(
struct instance *instance
)
{
- int i, l, n, fd, shmem_old_size, n1;
+ int l, fd;
u_char *cp, *cp1, *buf, *shmem_old;
struct msg_desc *mp;
struct stat sbuf;
- size_t shmem_length;
+ size_t i, n, n1, shmem_length, shmem_old_size;
/*
* The first thing we do is see if there is an instance->shmem_fname file (still)
@@ -1210,8 +1210,9 @@ oncore_read_config(
*/
FILE *fd;
- char *cp, *cc, *ca, line[100], units[2], device[64], **cpp;
- char *dirs[] = { "/etc/ntp", "/etc", 0 };
+ char *cc, *ca, line[100], units[2], device[64];
+ const char *dirs[] = { "/etc/ntp", "/etc", 0 };
+ const char *cp, **cpp;
int i, sign, lat_flg, long_flg, ht_flg, mode, mask;
double f1, f2, f3;
@@ -1239,19 +1240,20 @@ oncore_read_config(
mode = mask = 0;
lat_flg = long_flg = ht_flg = 0;
while (fgets(line, 100, fd)) {
+ char *cpw;
/* Remove comments */
- if ((cp = strchr(line, '#')))
- *cp = '\0';
+ if ((cpw = strchr(line, '#')))
+ *cpw = '\0';
/* Remove trailing space */
for (i = strlen(line);
- i > 0 && isascii((int)line[i - 1]) && isspace((int)line[i - 1]);
+ i > 0 && isascii((unsigned char)line[i - 1]) && isspace((unsigned char)line[i - 1]);
)
line[--i] = '\0';
/* Remove leading space */
- for (cc = line; *cc && isascii((int)*cc) && isspace((int)*cc); cc++)
+ for (cc = line; *cc && isascii((unsigned char)*cc) && isspace((unsigned char)*cc); cc++)
continue;
/* Stop if nothing left */
@@ -1260,16 +1262,16 @@ oncore_read_config(
/* Uppercase the command and find the arg */
for (ca = cc; *ca; ca++) {
- if (isascii((int)*ca)) {
- if (islower((int)*ca)) {
- *ca = toupper(*ca);
- } else if (isspace((int)*ca) || (*ca == '='))
+ if (isascii((unsigned char)*ca)) {
+ if (islower((unsigned char)*ca)) {
+ *ca = toupper((unsigned char)*ca);
+ } else if (isspace((unsigned char)*ca) || (*ca == '='))
break;
}
}
/* Remove space (and possible =) leading the arg */
- for (; *ca && isascii((int)*ca) && (isspace((int)*ca) || (*ca == '=')); ca++)
+ for (; *ca && isascii((unsigned char)*ca) && (isspace((unsigned char)*ca) || (*ca == '=')); ca++)
continue;
if (!strncmp(cc, "STATUS", (size_t) 6) || !strncmp(cc, "SHMEM", (size_t) 5)) {
@@ -1278,9 +1280,9 @@ oncore_read_config(
}
/* Uppercase argument as well */
- for (cp = ca; *cp; cp++)
- if (isascii((int)*cp) && islower((int)*cp))
- *cp = toupper(*cp);
+ for (cpw = ca; *cpw; cpw++)
+ if (isascii((unsigned char)*cpw) && islower((unsigned char)*cpw))
+ *cpw = toupper((unsigned char)*cpw);
if (!strncmp(cc, "LAT", (size_t) 3)) {
f1 = f2 = f3 = 0;
@@ -1477,8 +1479,7 @@ oncore_consume(
struct instance *instance
)
{
- int i, m;
- unsigned l;
+ unsigned i, m, l;
while (rcvptr >= 7) {
if (rcvbuf[0] != '@' || rcvbuf[1] != '@') {
@@ -1984,7 +1985,7 @@ oncore_msg_Ag(
size_t len
)
{
- char *cp;
+ const char *cp;
cp = "set to";
if (instance->o_state == ONCORE_RUN)
@@ -2503,9 +2504,9 @@ oncore_msg_Bl(
size_t len
)
{
- int chan, id, subframe, valid, page, i, j, tow;
+ int subframe, valid, page, i, j, tow;
int day_now, day_lsf;
- char *cp;
+ const char *cp;
enum {
WARN_NOT_YET,
WARN_0,
@@ -2516,8 +2517,6 @@ oncore_msg_Bl(
day_now = day_lsf = 0;
cp = NULL; /* keep gcc happy */
- chan = buf[4] & 0377;
- id = buf[5] & 0377;
subframe = buf[6] & 017;
valid = (buf[6] >> 4) & 017;
page = buf[7];
@@ -2889,19 +2888,20 @@ oncore_msg_Cj_id(
size_t len
)
{
- char *cp, *cp1, *cp2, Model[21];
+ char *cp2, Model[21];
+ const char *cp, *cp1;
/* Write Receiver ID message to clockstats file */
instance->Cj[294] = '\0';
- for (cp=(char *)instance->Cj; cp< (char *) &instance->Cj[294]; ) {
- cp1 = strchr(cp, '\r');
- if (!cp1)
- cp1 = (char *)&instance->Cj[294];
- *cp1 = '\0';
+ for (cp= (char *)instance->Cj; cp< (char *) &instance->Cj[294]; ) {
+ char *cpw = strchr(cp, '\r');
+ if (!cpw)
+ cpw = (char *)&instance->Cj[294];
+ *cpw = '\0';
oncore_log(instance, LOG_NOTICE, cp);
- *cp1 = '\r';
- cp = cp1+2;
+ *cpw = '\r';
+ cp = cpw+2;
}
/* next, the Firmware Version and Revision numbers */
@@ -2916,7 +2916,7 @@ oncore_msg_Cj_id(
;
cp1 = cp;
cp2 = Model;
- for (; !isspace((int)*cp) && cp-cp1 < 20; cp++, cp2++)
+ for (; !isspace((unsigned char)*cp) && cp-cp1 < 20; cp++, cp2++)
*cp2 = *cp;
*cp2 = '\0';
@@ -3046,7 +3046,7 @@ oncore_msg_Cj_init(
if (mode != 0) {
/* cable delay in ns */
memcpy(Cmd, oncore_cmd_Az, (size_t) sizeof(oncore_cmd_Az));
- w32_buf(&Cmd[-2+4], instance->delay);
+ w32_buf(&Cmd[-2+4], (int)instance->delay);
oncore_sendmsg(instance, Cmd, sizeof(oncore_cmd_Az)); /* 6,8,12 */
/* PPS offset in ns */
@@ -3146,7 +3146,7 @@ oncore_msg_Gb(
size_t len
)
{
- char * gmts;
+ const char * gmts;
int mo, d, y, h, m, s, gmth, gmtm;
mo = buf[4];
@@ -3177,7 +3177,7 @@ oncore_msg_Gc(
size_t len
)
{
- char *tbl[] = {"OFF", "ON", "SATELLITE", "TRAIM" };
+ const char *tbl[] = {"OFF", "ON", "SATELLITE", "TRAIM" };
instance->pps_control_msg_seen = 1;
oncore_log_f(instance, LOG_INFO, "PPS Control set to %s",
@@ -3202,7 +3202,7 @@ oncore_msg_Gj(
};
int dt;
- char *cp;
+ const char *cp;
instance->saw_Gj = 1; /* flag, saw_Gj, dont need to try Bj in check_leap */
@@ -3282,7 +3282,7 @@ oncore_antenna_report(
struct instance *instance,
enum antenna_state new_state)
{
- char *cp;
+ const char *cp;
if (instance->ant_state == new_state)
return;
diff --git a/ntpd/refclock_parse.c b/ntpd/refclock_parse.c
index 052ec3a5ed99..aa4be6063c1d 100644
--- a/ntpd/refclock_parse.c
+++ b/ntpd/refclock_parse.c
@@ -16,7 +16,7 @@
* SunOS 4.x and SunOS5.x.
*
* Copyright (c) 1995-2009 by Frank Kardel <kardel <AT> ntp.org>
- * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universität Erlangen-Nürnberg, Germany
+ * Copyright (c) 1989-1994 by Frank Kardel, Friedrich-Alexander Universitaet Erlangen-Nuernberg, Germany
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -1537,7 +1537,7 @@ clear_err(
{
if (lstate == ERR_ALL)
{
- int i;
+ size_t i;
for (i = 0; i < ERR_CNT; i++)
{
@@ -1638,7 +1638,7 @@ mkreadable(
if (!hex && /* no binary only */
(*src != '\\') && /* no plain \ */
(*src != '"') && /* no " */
- isprint((int)*src)) /* only printables */
+ isprint((unsigned char)*src)) /* only printables */
{ /* they are easy... */
*buffer++ = *src++;
blen--;
@@ -1771,6 +1771,16 @@ static bind_t io_bindings[] =
},
{
(char *)0,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
}
};
@@ -2452,6 +2462,31 @@ init_iobinding(
** support routines
**/
+static NTP_PRINTF(4, 5) char *
+ap(char *buffer, size_t len, char *pos, const char *fmt, ...)
+{
+ va_list va;
+ int l;
+ size_t rem = len - (pos - buffer);
+
+ if (rem == 0)
+ return pos;
+
+ va_start(va, fmt);
+ l = vsnprintf(pos, rem, fmt, va);
+ va_end(va);
+
+ if (l != -1) {
+ rem--;
+ if (rem >= (size_t)l)
+ pos += l;
+ else
+ pos += rem;
+ }
+
+ return pos;
+}
+
/*--------------------------------------------------
* convert a flag field to a string
*/
@@ -2480,7 +2515,7 @@ parsestate(
{ PARSEB_TIMECODE, "TIME CODE" },
{ PARSEB_PPS, "PPS" },
{ PARSEB_POSITION, "POSITION" },
- { 0 }
+ { 0, NULL }
};
static struct sbits
@@ -2493,12 +2528,11 @@ parsestate(
{ PARSEB_S_PPS, "PPS SIGNAL" },
{ PARSEB_S_ANTENNA, "ANTENNA" },
{ PARSEB_S_POSITION, "POSITION" },
- { 0 }
+ { 0, NULL }
};
int i;
char *s, *t;
-
*buffer = '\0';
s = t = buffer;
@@ -2508,42 +2542,37 @@ parsestate(
if (flagstrings[i].bit & lstate)
{
if (s != t)
- strlcpy(t, "; ", BUFFER_SIZES(buffer, t, size));
- if (strlcat(t, flagstrings[i].name, BUFFER_SIZES(buffer, t, size)) <
- BUFFER_SIZES(buffer, t, size))
- t += strlen(t);
+ t = ap(buffer, size, t, "; ");
+ t = ap(buffer, size, t, "%s", flagstrings[i].name);
}
i++;
}
if (lstate & (PARSEB_S_LEAP|PARSEB_S_ANTENNA|PARSEB_S_PPS|PARSEB_S_POSITION))
{
- if (s != t &&
- strlcpy(t, "; ", BUFFER_SIZES(buffer, t, size)) <
- BUFFER_SIZES(buffer, t, size))
- t += strlen(t);
+ if (s != t)
+ t = ap(buffer, size, t, "; ");
+
+ t = ap(buffer, size, t, "(");
- if (strlcpy(t, "(", BUFFER_SIZES(buffer, t, size)) <
- BUFFER_SIZES(buffer, t, size))
- s = t = t + strlen(t);
+ s = t;
i = 0;
while (sflagstrings[i].bit)
{
if (sflagstrings[i].bit & lstate)
{
- if (t != s &&
- strlcpy(t, "; ", BUFFER_SIZES(buffer, t, size)) <
- BUFFER_SIZES(buffer, t, size))
- t += 2;
+ if (t != s)
+ {
+ t = ap(buffer, size, t, "; ");
+ }
- if (strlcpy(t, sflagstrings[i].name, BUFFER_SIZES(buffer, t, size)) <
- BUFFER_SIZES(buffer, t, size))
- t += strlen(t);
+ t = ap(buffer, size, t, "%s",
+ sflagstrings[i].name);
}
i++;
}
- strlcpy(t, ")", BUFFER_SIZES(buffer, t, size));
+ t = ap(buffer, size, t, ")");
}
return buffer;
}
@@ -2571,10 +2600,12 @@ parsestatus(
{ CVT_BADDATE, "DATE ILLEGAL" },
{ CVT_BADTIME, "TIME ILLEGAL" },
{ CVT_ADDITIONAL, "ADDITIONAL DATA" },
- { 0 }
+ { 0, NULL }
};
int i;
+ char *t;
+ t = buffer;
*buffer = '\0';
i = 0;
@@ -2582,9 +2613,9 @@ parsestatus(
{
if (flagstrings[i].bit & lstate)
{
- if (buffer[0])
- strlcat(buffer, "; ", size);
- strlcat(buffer, flagstrings[i].name, size);
+ if (t != buffer)
+ t = ap(buffer, size, t, "; ");
+ t = ap(buffer, size, t, "%s", flagstrings[i].name);
}
i++;
}
@@ -2614,12 +2645,12 @@ clockstatus(
{ CEVNT_PROP, "PROPAGATION DELAY" },
{ CEVNT_BADDATE, "ILLEGAL DATE" },
{ CEVNT_BADTIME, "ILLEGAL TIME" },
- { (unsigned)~0L }
+ { (unsigned)~0L, NULL }
};
int i;
i = 0;
- while (flagstrings[i].value != ~0)
+ while (flagstrings[i].value != (u_int)~0)
{
if (flagstrings[i].value == lstate)
{
@@ -2647,10 +2678,11 @@ l_mktime(
char *t;
buffer[0] = '\0';
+ t = buffer;
if ((tmp = delta / (60*60*24)) != 0)
{
- snprintf(buffer, BUFFER_SIZE(buffer, buffer), "%ldd+", (u_long)tmp);
+ t = ap(buffer, sizeof(buffer), t, "%ldd+", (u_long)tmp);
delta -= tmp * 60*60*24;
}
@@ -2659,10 +2691,8 @@ l_mktime(
m = delta % 60;
delta /= 60;
- t = buffer + strlen(buffer);
-
- snprintf(t, BUFFER_SIZE(buffer, t), "%02d:%02d:%02d",
- (int)delta, (int)m, (int)s);
+ t = ap(buffer, sizeof(buffer), t, "%02d:%02d:%02d",
+ (int)delta, (int)m, (int)s);
return buffer;
}
@@ -2853,7 +2883,7 @@ parse_ppsapi(
)
{
int cap, mode_ppsoffset;
- char *cp;
+ const char *cp;
parse->flags &= ~PARSE_PPSCLOCK;
@@ -2961,7 +2991,7 @@ parse_start(
type = CLK_TYPE(peer);
unit = CLK_UNIT(peer);
- if ((type == ~0) || (parse_clockinfo[type].cl_description == (char *)0))
+ if ((type == (u_int)~0) || (parse_clockinfo[type].cl_description == (char *)0))
{
msyslog(LOG_ERR, "PARSE receiver #%d: parse_start: unsupported clock type %d (max %d)",
unit, CLK_REALTYPE(peer), ncltypes-1);
@@ -3233,12 +3263,9 @@ parse_start(
parse_shutdown(CLK_UNIT(parse->peer), peer); /* let our cleaning staff do the work */
return 0; /* well, ok - special initialisation broke */
}
-
- tmp_ctl.parseformat.parse_count = strlcpy(tmp_ctl.parseformat.parse_buffer,
- parse->parse_type->cl_format,
- sizeof(tmp_ctl.parseformat.parse_buffer));
- if (tmp_ctl.parseformat.parse_count >= sizeof(tmp_ctl.parseformat.parse_buffer))
- tmp_ctl.parseformat.parse_count = sizeof(tmp_ctl.parseformat.parse_buffer) - 1;
+
+ strlcpy(tmp_ctl.parseformat.parse_buffer, parse->parse_type->cl_format, sizeof(tmp_ctl.parseformat.parse_buffer));
+ tmp_ctl.parseformat.parse_count = strlen(tmp_ctl.parseformat.parse_buffer);
if (!PARSE_SETFMT(parse, &tmp_ctl))
{
@@ -3408,7 +3435,7 @@ parse_poll(
parse->generic->polls++;
if (parse->pollneeddata &&
- ((current_time - parse->pollneeddata) > (1<<(max(min(parse->peer->hpoll, parse->peer->ppoll), parse->peer->minpoll)))))
+ ((int)(current_time - parse->pollneeddata) > (1<<(max(min(parse->peer->hpoll, parse->peer->ppoll), parse->peer->minpoll)))))
{
/*
* start worrying when exceeding a poll inteval
@@ -3521,16 +3548,16 @@ parse_control(
}
start = tt = add_var(&out->kv_list, 128, RO|DEF);
- snprintf(tt, 128, "refclock_time=\"");
- tt += strlen(tt);
+ tt = ap(start, 128, tt, "refclock_time=\"");
if (parse->timedata.parse_time.fp.l_ui == 0)
{
- strlcpy(tt, "<UNDEFINED>\"", BUFFER_SIZES(start, tt, 128));
+ tt = ap(start, 128, tt, "<UNDEFINED>\"");
}
else
{
- snprintf(tt, 128, "%s\"", gmprettydate(&parse->timedata.parse_time.fp));
+ tt = ap(start, 128, tt, "%s\"",
+ gmprettydate(&parse->timedata.parse_time.fp));
}
if (!PARSE_GETTIMECODE(parse, &tmpctl))
@@ -3541,8 +3568,7 @@ parse_control(
else
{
start = tt = add_var(&out->kv_list, 512, RO|DEF);
- snprintf(tt, 512, "refclock_status=\"");
- tt += strlen(tt);
+ tt = ap(start, 512, tt, "refclock_status=\"");
/*
* copy PPS flags from last read transaction (informational only)
@@ -3550,9 +3576,11 @@ parse_control(
tmpctl.parsegettc.parse_state |= parse->timedata.parse_state &
(PARSEB_PPS|PARSEB_S_PPS);
- (void) parsestate(tmpctl.parsegettc.parse_state, tt, BUFFER_SIZES(start, tt, 512));
+ (void)parsestate(tmpctl.parsegettc.parse_state, tt, BUFFER_SIZES(start, tt, 512));
- strlcat(tt, "\"", BUFFER_SIZES(start, tt, 512));
+ tt += strlen(tt);
+
+ tt = ap(start, 512, tt, "\"");
if (tmpctl.parsegettc.parse_count)
mkascii(outstatus+strlen(outstatus), (int)(sizeof(outstatus)- strlen(outstatus) - 1),
@@ -3569,11 +3597,19 @@ parse_control(
}
else
{
- tt = add_var(&out->kv_list, 80, RO|DEF);
- snprintf(tt, 80, "refclock_format=\"");
+ int count = tmpctl.parseformat.parse_count - 1;
- strlcat(tt, tmpctl.parseformat.parse_buffer, 80);
- strlcat(tt,"\"", 80);
+ start = tt = add_var(&out->kv_list, 80, RO|DEF);
+ tt = ap(start, 80, tt, "refclock_format=\"");
+
+ if (count > 0) {
+ tt = ap(start, 80, tt, "%*.*s",
+ count,
+ count,
+ tmpctl.parseformat.parse_buffer);
+ }
+
+ tt = ap(start, 80, tt, "\"");
}
/*
@@ -3581,8 +3617,7 @@ parse_control(
*/
start = tt = add_var(&out->kv_list, LEN_STATES, RO|DEF);
- strlcpy(tt, "refclock_states=\"", LEN_STATES);
- tt += strlen(tt);
+ tt = ap(start, LEN_STATES, tt, "refclock_states=\"");
for (i = 0; i <= CEVNT_MAX; i++)
{
@@ -3616,14 +3651,15 @@ parse_control(
(int)(percent / 100), (int)(percent % 100));
if ((count = strlen(item)) < (LEN_STATES - 40 - (tt - start)))
{
- strlcpy(tt, item, BUFFER_SIZES(start, tt, LEN_STATES));
- tt += count;
+ tt = ap(start, LEN_STATES, tt,
+ "%s", item);
}
sum += s_time;
}
}
- snprintf(tt, BUFFER_SIZES(start, tt, LEN_STATES), "; running time: %s\"", l_mktime(sum));
+ tt = ap(start, LEN_STATES, tt,
+ "; running time: %s\"", l_mktime(sum));
tt = add_var(&out->kv_list, 32, RO);
snprintf(tt, 32, "refclock_id=\"%s\"", parse->parse_type->cl_id);
@@ -3990,7 +4026,7 @@ parse_process(
* implied on second offset
*/
off.l_uf = ~off.l_uf; /* map [0.5..1[ -> [-0.5..0[ */
- off.l_i = (off.l_uf & 0x8000000) ? -1 : 0; /* sign extend */
+ off.l_i = (off.l_uf & 0x80000000) ? -1 : 0; /* sign extend */
}
else
{
@@ -4142,20 +4178,7 @@ parse_process(
*/
if (PARSE_PPS(parsetime->parse_state) && CLK_PPS(parse->peer))
{
- /* refclock_pps includes fudgetime1 - we keep the RS232 offset in there :-( */
- double savedtime1 = parse->generic->fudgetime1;
-
- parse->generic->fudgetime1 = fudge;
-
- if (refclock_pps(parse->peer, &parse->atom,
- parse->flags & (CLK_FLAG1|CLK_FLAG2|CLK_FLAG3|CLK_FLAG4))) {
- parse->peer->flags |= FLAG_PPS;
- } else {
- parse->peer->flags &= ~FLAG_PPS;
- }
-
- parse->generic->fudgetime1 = savedtime1;
-
+ parse->peer->flags |= FLAG_PPS;
parse_hardpps(parse, PARSE_HARDPPS_ENABLE);
}
#endif
@@ -4297,32 +4320,32 @@ gps16x_message(
char *p, *b;
status = get_lsb_short(&bufp);
- snprintf(buffer, sizeof(buffer), "meinberg_gps_status=\"[0x%04x] ", status);
+ p = b = buffer;
+ p = ap(buffer, sizeof(buffer), p,
+ "meinberg_gps_status=\"[0x%04x] ",
+ status);
if (status)
{
- p = b = buffer + strlen(buffer);
+ b = p;
while (s->flag)
{
if (status & s->flag)
{
if (p != b)
{
- *p++ = ',';
- *p++ = ' ';
+ p = ap(buffer, sizeof(buffer), p, ", ");
}
- strlcat(p, (const char *)s->string, sizeof(buffer));
+ p = ap(buffer, sizeof(buffer), p, "%s", (const char *)s->string);
}
s++;
}
-
- *p++ = '"';
- *p = '\0';
+ p = ap(buffer, sizeof(buffer), p, "\"");
}
else
{
- strlcat(buffer, "<OK>\"", sizeof(buffer));
+ p = ap(buffer, sizeof(buffer), p, "<OK>\"");
}
set_var(&parse->kv, buffer, strlen(buffer)+1, RO|DEF);
@@ -4373,53 +4396,54 @@ gps16x_message(
{
ANT_INFO antinfo;
char buffer[512];
- char *p;
+ char *p, *q;
get_mbg_antinfo(&bufp, &antinfo);
- snprintf(buffer, sizeof(buffer), "meinberg_antenna_status=\"");
- p = buffer + strlen(buffer);
-
+ p = buffer;
+ p = ap(buffer, sizeof(buffer), p, "meinberg_antenna_status=\"");
switch (antinfo.status)
{
case ANT_INVALID:
- strlcat(p, "<OK>", BUFFER_SIZE(buffer, p));
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer),
+ p, "<OK>");
break;
case ANT_DISCONN:
- strlcat(p, "DISCONNECTED since ", BUFFER_SIZE(buffer, p));
+ q = ap(buffer, sizeof(buffer),
+ p, "DISCONNECTED since ");
NLOG(NLOG_CLOCKSTATUS)
ERR(ERR_BADSTATUS)
msyslog(LOG_ERR,"PARSE receiver #%d: ANTENNA FAILURE: %s",
CLK_UNIT(parse->peer), p);
- p += strlen(p);
+ p = q;
mbg_tm_str(&p, &antinfo.tm_disconn, BUFFER_SIZE(buffer, p));
*p = '\0';
break;
case ANT_RECONN:
- strlcat(p, "RECONNECTED on ", BUFFER_SIZE(buffer, p));
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer),
+ p, "RECONNECTED on ");
mbg_tm_str(&p, &antinfo.tm_reconn, BUFFER_SIZE(buffer, p));
- snprintf(p, BUFFER_SIZE(buffer, p), ", reconnect clockoffset %c%ld.%07ld s, disconnect time ",
+ p = ap(buffer, sizeof(buffer),
+ p, ", reconnect clockoffset %c%ld.%07ld s, disconnect time ",
(antinfo.delta_t < 0) ? '-' : '+',
ABS(antinfo.delta_t) / 10000,
ABS(antinfo.delta_t) % 10000);
- p += strlen(p);
mbg_tm_str(&p, &antinfo.tm_disconn, BUFFER_SIZE(buffer, p));
*p = '\0';
break;
default:
- snprintf(p, BUFFER_SIZE(buffer, p), "bad status 0x%04x", antinfo.status);
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer),
+ p, "bad status 0x%04x",
+ antinfo.status);
break;
}
- strlcat(p, "\"", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "\"");
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO|DEF);
+ set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF);
}
break;
@@ -4438,102 +4462,101 @@ gps16x_message(
int i;
p = buffer;
- strlcpy(buffer, "gps_tot_51=\"", BUFFER_SIZE(buffer, p));
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer),
+ p, "gps_tot_51=\"");
mbg_tgps_str(&p, &cfgh.tot_51, BUFFER_SIZE(buffer, p));
- strlcpy(p, "\"", BUFFER_SIZE(buffer, p));
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO);
+ p = ap(buffer, sizeof(buffer),
+ p, "\"");
+ set_var(&parse->kv, buffer, sizeof(buffer), RO);
p = buffer;
- strlcpy(buffer, "gps_tot_63=\"", BUFFER_SIZE(buffer, p));
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer),
+ p, "gps_tot_63=\"");
mbg_tgps_str(&p, &cfgh.tot_63, BUFFER_SIZE(buffer, p));
- strlcpy(p, "\"", BUFFER_SIZE(buffer, p));
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO);
+ p = ap(buffer, sizeof(buffer),
+ p, "\"");
+ set_var(&parse->kv, buffer, sizeof(buffer), RO);
p = buffer;
- strlcpy(buffer, "gps_t0a=\"", BUFFER_SIZE(buffer, p));
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer),
+ p, "gps_t0a=\"");
mbg_tgps_str(&p, &cfgh.t0a, BUFFER_SIZE(buffer, p));
- strlcpy(p, "\"", BUFFER_SIZE(buffer, p));
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO);
+ p = ap(buffer, sizeof(buffer),
+ p, "\"");
+ set_var(&parse->kv, buffer, sizeof(buffer), RO);
for (i = MIN_SVNO; i < MAX_SVNO; i++)
{
p = buffer;
- snprintf(p, BUFFER_SIZE(buffer, p), "gps_cfg[%d]=\"[0x%x] ", i, cfgh.cfg[i]);
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer), p, "gps_cfg[%d]=\"[0x%x] ", i, cfgh.cfg[i]);
switch (cfgh.cfg[i] & 0x7)
{
case 0:
- strlcpy(p, "BLOCK I", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "BLOCK I");
break;
case 1:
- strlcpy(p, "BLOCK II", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "BLOCK II");
break;
default:
- strlcpy(p, "bad CFG", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "bad CFG");
break;
}
- strlcat(p, "\"", BUFFER_SIZE(buffer, p));
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO);
+ p = ap(buffer, sizeof(buffer), p, "\"");
+ set_var(&parse->kv, buffer, sizeof(buffer), RO);
p = buffer;
- snprintf(p, BUFFER_SIZE(buffer, p), "gps_health[%d]=\"[0x%x] ", i, cfgh.health[i]);
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer), p, "gps_health[%d]=\"[0x%x] ", i, cfgh.health[i]);
switch ((cfgh.health[i] >> 5) & 0x7 )
{
case 0:
- strlcpy(p, "OK;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "OK;");
break;
case 1:
- strlcpy(p, "PARITY;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "PARITY;");
break;
case 2:
- strlcpy(p, "TLM/HOW;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "TLM/HOW;");
break;
case 3:
- strlcpy(p, "Z-COUNT;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "Z-COUNT;");
break;
case 4:
- strlcpy(p, "SUBFRAME 1,2,3;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "SUBFRAME 1,2,3;");
break;
case 5:
- strlcpy(p, "SUBFRAME 4,5;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "SUBFRAME 4,5;");
break;
case 6:
- strlcpy(p, "UPLOAD BAD;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "UPLOAD BAD;");
break;
case 7:
- strlcpy(p, "DATA BAD;", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "DATA BAD;");
break;
}
- p += strlen(p);
-
switch (cfgh.health[i] & 0x1F)
{
case 0:
- strlcpy(p, "SIGNAL OK", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "SIGNAL OK");
break;
case 0x1C:
- strlcpy(p, "SV TEMP OUT", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "SV TEMP OUT");
break;
case 0x1D:
- strlcpy(p, "SV WILL BE TEMP OUT", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "SV WILL BE TEMP OUT");
break;
case 0x1E:
break;
case 0x1F:
- strlcpy(p, "MULTIPLE ERRS", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "MULTIPLE ERRS");
break;
default:
- strlcpy(p, "TRANSMISSION PROBLEMS", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "TRANSMISSION PROBLEMS");
break;
}
- strlcat(p, "\"", sizeof(buffer));
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO);
+ p = ap(buffer, sizeof(buffer), p, "\"");
+ set_var(&parse->kv, buffer, sizeof(buffer), RO);
}
}
}
@@ -4557,16 +4580,16 @@ gps16x_message(
if (utc.valid)
{
- strlcpy(p, "gps_utc_correction=\"", sizeof(buffer));
- p += strlen(p);
+ p = ap(buffer, sizeof(buffer), p, "gps_utc_correction=\"");
mk_utcinfo(p, utc.t0t.wn, utc.WNlsf, utc.DNt, utc.delta_tls, utc.delta_tlsf, BUFFER_SIZE(buffer, p));
- strlcat(p, "\"", BUFFER_SIZE(buffer, p));
+ p += strlen(p);
+ p = ap(buffer, sizeof(buffer), p, "\"");
}
else
{
- strlcpy(p, "gps_utc_correction=\"<NO UTC DATA>\"", BUFFER_SIZE(buffer, p));
+ p = ap(buffer, sizeof(buffer), p, "gps_utc_correction=\"<NO UTC DATA>\"");
}
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO|DEF);
+ set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF);
}
break;
@@ -4588,9 +4611,9 @@ gps16x_message(
snprintf(buffer, sizeof(buffer), "gps_message=\"%s\"", buffer1);
}
else
- strlcpy(buffer, "gps_message=<NONE>", sizeof(buffer));
+ snprintf(buffer, sizeof(buffer), "gps_message=<NONE>");
- set_var(&parse->kv, buffer, strlen(buffer)+1, RO|DEF);
+ set_var(&parse->kv, buffer, sizeof(buffer), RO|DEF);
}
break;
@@ -4863,7 +4886,7 @@ trimbletaip_event(
}
else
{
- if (rtc != strlen(*iv))
+ if (rtc != (int)strlen(*iv))
{
msyslog(LOG_ERR, "PARSE receiver #%d: trimbletaip_event: failed to send cmd incomplete (%d of %d bytes sent)",
CLK_UNIT(parse->peer), rtc, (int)strlen(*iv));
@@ -5394,7 +5417,7 @@ trimbletsip_message(
{
#ifdef DEBUG
if (debug > 2) {
- int i;
+ size_t i;
printf("TRIMBLE BAD packet, size %d:\n ", size);
for (i = 0; i < size; i++) {
@@ -5417,7 +5440,7 @@ trimbletsip_message(
#ifdef DEBUG
if (debug > 3) {
- int i;
+ size_t i;
printf("TRIMBLE packet 0x%02x, size %d:\n ", cmd, size);
for (i = 0; i < size; i++) {
@@ -5435,7 +5458,7 @@ trimbletsip_message(
if (s)
{
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%s=\"", s->varname);
+ t = ap(pbuffer, sizeof(pbuffer), t, "%s=\"", s->varname);
}
else
{
@@ -5445,45 +5468,41 @@ trimbletsip_message(
var_flag = s->varmode;
- t += strlen(t);
-
switch(cmd)
{
case CMD_RCURTIME:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%f, %d, %f",
+ t = ap(pbuffer, sizeof(pbuffer), t, "%f, %d, %f",
getflt((unsigned char *)&mb(0)), getshort((unsigned char *)&mb(4)),
getflt((unsigned char *)&mb(6)));
break;
case CMD_RBEST4:
- strlcpy(t, "mode: ", BUFFER_SIZE(pbuffer, t));
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, "mode: ");
switch (mb(0) & 0xF)
{
default:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "0x%x", mb(0) & 0x7);
+ t = ap(pbuffer, sizeof(pbuffer), t,
+ "0x%x", mb(0) & 0x7);
break;
case 1:
- strlcpy(t, "0D", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "0D");
break;
case 3:
- strlcpy(t, "2D", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "2D");
break;
case 4:
- strlcpy(t, "3D", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "3D");
break;
}
- t += strlen(t);
if (mb(0) & 0x10)
- strlcpy(t, "-MANUAL, ", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "-MANUAL, ");
else
- strlcpy(t, "-AUTO, ", BUFFER_SIZE(pbuffer, t));
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, "-AUTO, ");
- snprintf(t, BUFFER_SIZE(pbuffer, t), "satellites %02d %02d %02d %02d, PDOP %.2f, HDOP %.2f, VDOP %.2f, TDOP %.2f",
+ t = ap(pbuffer, sizeof(pbuffer), t, "satellites %02d %02d %02d %02d, PDOP %.2f, HDOP %.2f, VDOP %.2f, TDOP %.2f",
mb(1), mb(2), mb(3), mb(4),
getflt((unsigned char *)&mb(5)),
getflt((unsigned char *)&mb(9)),
@@ -5493,7 +5512,7 @@ trimbletsip_message(
break;
case CMD_RVERSION:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%d.%d (%d/%d/%d)",
+ t = ap(pbuffer, sizeof(pbuffer), t, "%d.%d (%d/%d/%d)",
mb(0)&0xff, mb(1)&0xff, 1900+(mb(4)&0xff), mb(2)&0xff, mb(3)&0xff);
break;
@@ -5516,43 +5535,40 @@ trimbletsip_message(
switch (mb(0) & 0xFF)
{
default:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "illegal value 0x%02x", mb(0) & 0xFF);
+ t = ap(pbuffer, sizeof(pbuffer), t, "illegal value 0x%02x", mb(0) & 0xFF);
break;
case 0x00:
- strlcpy(t, "doing position fixes", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "doing position fixes");
break;
case 0x01:
- strlcpy(t, "no GPS time yet", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "no GPS time yet");
break;
case 0x03:
- strlcpy(t, "PDOP too high", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "PDOP too high");
break;
case 0x08:
- strlcpy(t, "no usable satellites", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "no usable satellites");
break;
case 0x09:
- strlcpy(t, "only ONE usable satellite", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "only ONE usable satellite");
break;
case 0x0A:
- strlcpy(t, "only TWO usable satellites", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "only TWO usable satellites");
break;
case 0x0B:
- strlcpy(t, "only THREE usable satellites", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "only THREE usable satellites");
break;
case 0x0C:
- strlcpy(t, "the chosen satellite is unusable", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "the chosen satellite is unusable");
break;
}
- t += strlen(t);
-
bits = mb(1) & 0xFF;
for (i = 0; i < 8; i++)
if (bits & (0x1<<i))
{
- snprintf(t, BUFFER_SIZE(pbuffer, t), ", %s", msgs[i]);
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, ", %s", msgs[i]);
}
}
break;
@@ -5577,24 +5593,21 @@ trimbletsip_message(
int i, bits;
- snprintf(t, BUFFER_SIZE(pbuffer, t), "machine id 0x%02x", mb(0) & 0xFF);
- t += strlen(t);
-
+ t = ap(pbuffer, sizeof(pbuffer), t, "machine id 0x%02x", mb(0) & 0xFF);
bits = mb(1) & 0xFF;
for (i = 0; i < 8; i++)
if (bits & (0x1<<i))
{
- snprintf(t, BUFFER_SIZE(pbuffer, t), ", %s", msgs[i]);
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, ", %s", msgs[i]);
}
- snprintf(t, BUFFER_SIZE(pbuffer, t), ", Superpackets %ssupported", (mb(2) & 0xFF) ? "" :"un" );
+ t = ap(pbuffer, sizeof(pbuffer), t, ", Superpackets %ssupported", (mb(2) & 0xFF) ? "" :"un" );
}
break;
case CMD_ROPERPARAM:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%2x %.1f %.1f %.1f %.1f",
+ t = ap(pbuffer, sizeof(pbuffer), t, "%2x %.1f %.1f %.1f %.1f",
mb(0), getflt((unsigned char *)&mb(1)), getflt((unsigned char *)&mb(5)),
getflt((unsigned char *)&mb(9)), getflt((unsigned char *)&mb(13)));
break;
@@ -5614,19 +5627,19 @@ trimbletsip_message(
}
else
{
- strlcpy(t, "<NO UTC DATA>", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "<NO UTC DATA>");
}
}
break;
case CMD_RSAT1BIAS:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%.1fm %.2fm/s at %.1fs",
+ t = ap(pbuffer, sizeof(pbuffer), t, "%.1fm %.2fm/s at %.1fs",
getflt(&mb(0)), getflt(&mb(4)), getflt(&mb(8)));
break;
case CMD_RIOOPTIONS:
{
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%02x %02x %02x %02x",
+ t = ap(pbuffer, sizeof(pbuffer), t, "%02x %02x %02x %02x",
mb(0), mb(1), mb(2), mb(3));
if (mb(0) != TRIM_POS_OPT ||
mb(2) != TRIM_TIME_OPT)
@@ -5644,9 +5657,9 @@ trimbletsip_message(
double f = getflt((unsigned char *)&mb(12));
if (f > 0.0)
- snprintf(t, BUFFER_SIZE(pbuffer, t), "x= %.1fm, y= %.1fm, z= %.1fm, time_of_fix= %f sec",
- x, y, z,
- f);
+ t = ap(pbuffer, sizeof(pbuffer), t, "x= %.1fm, y= %.1fm, z= %.1fm, time_of_fix= %f sec",
+ x, y, z,
+ f);
else
return;
}
@@ -5659,10 +5672,10 @@ trimbletsip_message(
double f = getflt((unsigned char *)&mb(12));
if (f > 0.0)
- snprintf(t, BUFFER_SIZE(pbuffer, t), "lat %f %c, long %f %c, alt %.2fm",
- ((lat < 0.0) ? (-lat) : (lat))*RTOD, (lat < 0.0 ? 'S' : 'N'),
- ((lng < 0.0) ? (-lng) : (lng))*RTOD, (lng < 0.0 ? 'W' : 'E'),
- getflt((unsigned char *)&mb(8)));
+ t = ap(pbuffer, sizeof(pbuffer), t, "lat %f %c, long %f %c, alt %.2fm",
+ ((lat < 0.0) ? (-lat) : (lat))*RTOD, (lat < 0.0 ? 'S' : 'N'),
+ ((lng < 0.0) ? (-lng) : (lng))*RTOD, (lng < 0.0 ? 'W' : 'E'),
+ getflt((unsigned char *)&mb(8)));
else
return;
}
@@ -5673,8 +5686,8 @@ trimbletsip_message(
double x = getdbl((unsigned char *)&mb(0));
double y = getdbl((unsigned char *)&mb(8));
double z = getdbl((unsigned char *)&mb(16));
- snprintf(t, BUFFER_SIZE(pbuffer, t), "x= %.1fm, y= %.1fm, z= %.1fm",
- x, y, z);
+ t = ap(pbuffer, sizeof(pbuffer), t, "x= %.1fm, y= %.1fm, z= %.1fm",
+ x, y, z);
}
break;
@@ -5682,7 +5695,7 @@ trimbletsip_message(
{
double lat = getdbl((unsigned char *)&mb(0));
double lng = getdbl((unsigned char *)&mb(8));
- snprintf(t, BUFFER_SIZE(pbuffer, t), "lat %f %c, lon %f %c, alt %.2fm",
+ t = ap(pbuffer, sizeof(pbuffer), t, "lat %f %c, lon %f %c, alt %.2fm",
((lat < 0.0) ? (-lat) : (lat))*RTOD, (lat < 0.0 ? 'S' : 'N'),
((lng < 0.0) ? (-lng) : (lng))*RTOD, (lng < 0.0 ? 'W' : 'E'),
getdbl((unsigned char *)&mb(16)));
@@ -5693,43 +5706,38 @@ trimbletsip_message(
{
int i, sats;
- strlcpy(t, "mode: ", BUFFER_SIZE(pbuffer, t));
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, "mode: ");
switch (mb(0) & 0x7)
{
default:
- snprintf(t, BUFFER_SIZE(pbuffer, t), "0x%x", mb(0) & 0x7);
+ t = ap(pbuffer, sizeof(pbuffer), t, "0x%x", mb(0) & 0x7);
break;
case 3:
- strlcpy(t, "2D", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "2D");
break;
case 4:
- strlcpy(t, "3D", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "3D");
break;
}
- t += strlen(t);
if (mb(0) & 0x8)
- strlcpy(t, "-MANUAL, ", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "-MANUAL, ");
else
- strlcpy(t, "-AUTO, ", BUFFER_SIZE(pbuffer, t));
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, "-AUTO, ");
sats = (mb(0)>>4) & 0xF;
- snprintf(t, BUFFER_SIZE(pbuffer, t), "PDOP %.2f, HDOP %.2f, VDOP %.2f, TDOP %.2f, %d satellite%s in view: ",
+ t = ap(pbuffer, sizeof(pbuffer), t, "PDOP %.2f, HDOP %.2f, VDOP %.2f, TDOP %.2f, %d satellite%s in view: ",
getflt((unsigned char *)&mb(1)),
getflt((unsigned char *)&mb(5)),
getflt((unsigned char *)&mb(9)),
getflt((unsigned char *)&mb(13)),
sats, (sats == 1) ? "" : "s");
- t += strlen(t);
for (i=0; i < sats; i++)
{
- snprintf(t, BUFFER_SIZE(pbuffer, t), "%s%02d", i ? ", " : "", mb(17+i));
- t += strlen(t);
+ t = ap(pbuffer, sizeof(pbuffer), t, "%s%02d", i ? ", " : "", mb(17+i));
if (tr)
tr->ctrack |= (1 << (mb(17+i)-1));
}
@@ -5743,52 +5751,46 @@ trimbletsip_message(
case CMD_RSTATTRACK:
{
- snprintf(t-2, BUFFER_SIZE(pbuffer, t-2), "[%02d]=\"", mb(0)); /* add index to var name */
- t += strlen(t);
-
+ t = ap(pbuffer, sizeof(pbuffer), t-2, "[%02d]=\"", mb(0)); /* add index to var name */
if (getflt((unsigned char *)&mb(4)) < 0.0)
{
- strlcpy(t, "<NO MEASUREMENTS>", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "<NO MEASUREMENTS>");
var_flag &= ~DEF;
}
else
{
- snprintf(t, BUFFER_SIZE(pbuffer, t), "ch=%d, acq=%s, eph=%d, signal_level= %5.2f, elevation= %5.2f, azimuth= %6.2f",
+ t = ap(pbuffer, sizeof(pbuffer), t, "ch=%d, acq=%s, eph=%d, signal_level= %5.2f, elevation= %5.2f, azimuth= %6.2f",
(mb(1) & 0xFF)>>3,
mb(2) ? ((mb(2) == 1) ? "ACQ" : "SRCH") : "NEVER",
mb(3),
getflt((unsigned char *)&mb(4)),
getflt((unsigned char *)&mb(12)) * RTOD,
getflt((unsigned char *)&mb(16)) * RTOD);
- t += strlen(t);
if (mb(20))
{
var_flag &= ~DEF;
- strlcpy(t, ", OLD", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, ", OLD");
}
- t += strlen(t);
if (mb(22))
{
if (mb(22) == 1)
- strlcpy(t, ", BAD PARITY", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, ", BAD PARITY");
else
if (mb(22) == 2)
- strlcpy(t, ", BAD EPH HEALTH", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, ", BAD EPH HEALTH");
}
- t += strlen(t);
if (mb(23))
- strlcpy(t, ", collecting data", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, ", collecting data");
}
}
break;
default:
- strlcpy(t, "<UNDECODED>", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t, "<UNDECODED>");
break;
}
- t += strlen(t);
- strlcpy(t,"\"", BUFFER_SIZE(pbuffer, t));
+ t = ap(pbuffer, sizeof(pbuffer), t,"\"");
set_var(&parse->kv, pbuffer, sizeof(pbuffer), var_flag);
}
}
diff --git a/ntpd/refclock_pcf.c b/ntpd/refclock_pcf.c
index 4379832b4a7f..45b3475c0d68 100644
--- a/ntpd/refclock_pcf.c
+++ b/ntpd/refclock_pcf.c
@@ -140,7 +140,7 @@ pcf_poll(
pp = peer->procptr;
buf[0] = 0;
- if (read(pp->io.fd, buf, sizeof(buf)) < sizeof(buf) || buf[0] != 9) {
+ if (read(pp->io.fd, buf, sizeof(buf)) < (ssize_t)sizeof(buf) || buf[0] != 9) {
refclock_report(peer, CEVNT_FAULT);
return;
}
diff --git a/ntpd/refclock_shm.c b/ntpd/refclock_shm.c
index 6540e6f377da..7174abdbf4cf 100644
--- a/ntpd/refclock_shm.c
+++ b/ntpd/refclock_shm.c
@@ -51,13 +51,17 @@
#define NSAMPLES 3 /* stages of median filter */
/*
+ * Mode flags
+ */
+#define SHM_MODE_PRIVATE 0x0001
+
+/*
* Function prototypes
*/
static int shm_start (int unit, struct peer *peer);
static void shm_shutdown (int unit, struct peer *peer);
static void shm_poll (int unit, struct peer *peer);
static void shm_timer (int unit, struct peer *peer);
-static void shm_peek (int unit, struct peer *peer);
static void shm_clockstats (int unit, struct peer *peer);
static void shm_control (int unit, const struct refclockstat * in_st,
struct refclockstat * out_st, struct peer *peer);
@@ -100,6 +104,7 @@ struct shmTime {
struct shmunit {
struct shmTime *shm; /* pointer to shared memory segment */
+ int forall; /* access for all UIDs? */
/* debugging/monitoring counters - reset when printed */
int ticks; /* number of attempts to read data*/
@@ -112,76 +117,87 @@ struct shmunit {
time_t max_delay; /* age/stale limit */
};
+static struct shmTime*
+getShmTime(
+ int unit,
+ int/*BOOL*/ forall
+ )
+{
+ struct shmTime *p = NULL;
-struct shmTime *getShmTime(int);
-
-struct shmTime *getShmTime (int unit) {
#ifndef SYS_WINNT
- int shmid=0;
+
+ int shmid;
/* 0x4e545030 is NTP0.
* Big units will give non-ascii but that's OK
* as long as everybody does it the same way.
*/
- shmid=shmget (0x4e545030 + unit, sizeof (struct shmTime),
- IPC_CREAT | ((unit < 2) ? 0600 : 0666));
+ shmid=shmget(0x4e545030 + unit, sizeof (struct shmTime),
+ IPC_CREAT | (forall ? 0666 : 0600));
if (shmid == -1) { /* error */
msyslog(LOG_ERR, "SHM shmget (unit %d): %m", unit);
- return 0;
+ return NULL;
}
- else { /* no error */
- struct shmTime *p = (struct shmTime *)shmat (shmid, 0, 0);
- if (p == (struct shmTime *)-1) { /* error */
- msyslog(LOG_ERR, "SHM shmat (unit %d): %m", unit);
- return 0;
- }
- return p;
+ p = (struct shmTime *)shmat (shmid, 0, 0);
+ if (p == (struct shmTime *)-1) { /* error */
+ msyslog(LOG_ERR, "SHM shmat (unit %d): %m", unit);
+ return NULL;
}
+ return p;
+
#else
- char buf[10];
+
+ static const char * nspref[2] = { "Local", "Global" };
+ char buf[20];
LPSECURITY_ATTRIBUTES psec = 0;
HANDLE shmid = 0;
SECURITY_DESCRIPTOR sd;
SECURITY_ATTRIBUTES sa;
+ unsigned int numch;
- snprintf(buf, sizeof(buf), "NTP%d", unit);
- if (unit >= 2) { /* world access */
+ numch = snprintf(buf, sizeof(buf), "%s\\NTP%d",
+ nspref[forall != 0], (unit & 0xFF));
+ if (numch >= sizeof(buf)) {
+ msyslog(LOG_ERR, "SHM name too long (unit %d)", unit);
+ return NULL;
+ }
+ if (forall) { /* world access */
if (!InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION)) {
msyslog(LOG_ERR,"SHM InitializeSecurityDescriptor (unit %d): %m", unit);
- return 0;
+ return NULL;
}
- if (!SetSecurityDescriptorDacl(&sd, 1, 0, 0)) {
+ if (!SetSecurityDescriptorDacl(&sd, TRUE, NULL, FALSE)) {
msyslog(LOG_ERR, "SHM SetSecurityDescriptorDacl (unit %d): %m", unit);
- return 0;
+ return NULL;
}
- sa.nLength=sizeof (SECURITY_ATTRIBUTES);
+ sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = &sd;
- sa.bInheritHandle = 0;
+ sa.bInheritHandle = FALSE;
psec = &sa;
}
shmid = CreateFileMapping ((HANDLE)0xffffffff, psec, PAGE_READWRITE,
- 0, sizeof (struct shmTime), buf);
- if (!shmid) { /*error*/
- char buf[1000];
-
+ 0, sizeof (struct shmTime), buf);
+ if (shmid == NULL) { /*error*/
+ char buf[1000];
FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM,
0, GetLastError (), 0, buf, sizeof (buf), 0);
msyslog(LOG_ERR, "SHM CreateFileMapping (unit %d): %s", unit, buf);
- return 0;
- } else {
- struct shmTime *p = (struct shmTime *) MapViewOfFile (shmid,
- FILE_MAP_WRITE, 0, 0, sizeof (struct shmTime));
- if (p == 0) { /*error*/
- char buf[1000];
-
- FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM,
- 0, GetLastError (), 0, buf, sizeof (buf), 0);
- msyslog(LOG_ERR,"SHM MapViewOfFile (unit %d): %s", unit, buf)
- return 0;
- }
- return p;
+ return NULL;
}
+ p = (struct shmTime *)MapViewOfFile(shmid, FILE_MAP_WRITE, 0, 0,
+ sizeof (struct shmTime));
+ if (p == NULL) { /*error*/
+ char buf[1000];
+ FormatMessage (FORMAT_MESSAGE_FROM_SYSTEM,
+ 0, GetLastError (), 0, buf, sizeof (buf), 0);
+ msyslog(LOG_ERR,"SHM MapViewOfFile (unit %d): %s", unit, buf);
+ return NULL;
+ }
+
#endif
+
+ return p;
}
/*
* shm_start - attach to shared memory
@@ -192,18 +208,17 @@ shm_start(
struct peer *peer
)
{
- struct refclockproc *pp;
- struct shmunit *up;
+ struct refclockproc * const pp = peer->procptr;
+ struct shmunit * const up = emalloc_zero(sizeof(*up));
- pp = peer->procptr;
pp->io.clock_recv = noentry;
pp->io.srcclock = peer;
pp->io.datalen = 0;
pp->io.fd = -1;
- up = emalloc_zero(sizeof(*up));
+ up->forall = (unit >= 2) && !(peer->ttl & SHM_MODE_PRIVATE);
- up->shm = getShmTime(unit);
+ up->shm = getShmTime(unit, up->forall);
/*
* Initialize miscellaneous peer variables
@@ -243,12 +258,12 @@ shm_control(
struct peer * peer
)
{
- struct refclockproc *pp;
- struct shmunit *up;
-
- pp = peer->procptr;
- up = pp->unitptr;
+ struct refclockproc * const pp = peer->procptr;
+ struct shmunit * const up = pp->unitptr;
+ UNUSED_ARG(unit);
+ UNUSED_ARG(in_st);
+ UNUSED_ARG(out_st);
if (NULL == up)
return;
if (pp->sloppyclockflag & CLK_FLAG1)
@@ -269,31 +284,23 @@ shm_shutdown(
struct peer *peer
)
{
- struct refclockproc *pp;
- struct shmunit *up;
-
- pp = peer->procptr;
- up = pp->unitptr;
+ struct refclockproc * const pp = peer->procptr;
+ struct shmunit * const up = pp->unitptr;
+ UNUSED_ARG(unit);
if (NULL == up)
return;
#ifndef SYS_WINNT
+
/* HMS: shmdt() wants char* or const void * */
- (void) shmdt ((char *)up->shm);
+ (void)shmdt((char *)up->shm);
+
#else
- UnmapViewOfFile (up->shm);
-#endif
- free(up);
-}
+ UnmapViewOfFile(up->shm);
-/*
- * shm_timer - called every second
- */
-static void
-shm_timer(int unit, struct peer *peer)
-{
- shm_peek(unit, peer);
+#endif
+ free(up);
}
@@ -306,13 +313,10 @@ shm_poll(
struct peer *peer
)
{
- struct refclockproc *pp;
- struct shmunit *up;
+ struct refclockproc * const pp = peer->procptr;
+ struct shmunit * const up = pp->unitptr;
int major_error;
- pp = peer->procptr;
- up = pp->unitptr;
-
pp->polls++;
/* get dominant reason if we have no samples at all */
@@ -345,16 +349,18 @@ shm_poll(
}
/*
- * shm_peek - try to grab a sample
+ * shm_timer - called onece every second.
+ *
+ * This tries to grab a sample from the SHM segment
*/
static void
-shm_peek(
+shm_timer(
int unit,
struct peer *peer
)
{
- struct refclockproc *pp;
- struct shmunit *up;
+ struct refclockproc * const pp = peer->procptr;
+ struct shmunit * const up = pp->unitptr;
/* access order is important for lock-free SHM access; we
** enforce order by treating the whole structure volatile.
@@ -383,19 +389,16 @@ shm_peek(
* This is the main routine. It snatches the time from the shm
* board and tacks on a local timestamp.
*/
- pp = peer->procptr;
- up = pp->unitptr;
up->ticks++;
- if (up->shm == 0) {
+ if ((shm = up->shm) == NULL) {
/* try to map again - this may succeed if meanwhile some-
body has ipcrm'ed the old (unaccessible) shared mem segment */
- up->shm = getShmTime(unit);
- }
- shm = up->shm;
- if (shm == 0) {
- DPRINTF(1, ("%s: no SHM segment\n",
- refnumtoa(&peer->srcadr)));
- return;
+ shm = up->shm = getShmTime(unit, up->forall);
+ if (shm == NULL) {
+ DPRINTF(1, ("%s: no SHM segment\n",
+ refnumtoa(&peer->srcadr)));
+ return;
+ }
}
if ( ! shm->valid) {
DPRINTF(1, ("%s: SHM not ready\n",
@@ -542,28 +545,17 @@ static void shm_clockstats(
struct peer *peer
)
{
- struct refclockproc *pp;
- struct shmunit *up;
- char logbuf[64];
- unsigned int llen;
-
- pp = peer->procptr;
- up = pp->unitptr;
+ struct refclockproc * const pp = peer->procptr;
+ struct shmunit * const up = pp->unitptr;
+ UNUSED_ARG(unit);
if (pp->sloppyclockflag & CLK_FLAG4) {
- /* if snprintf() returns a negative values on errors
- ** (some older ones do) make sure we are NUL
- ** terminated. Using an unsigned result does the trick.
- */
- llen = snprintf(logbuf, sizeof(logbuf),
- "%3d %3d %3d %3d %3d",
- up->ticks, up->good, up->notready,
- up->bad, up->clash);
- logbuf[min(llen, sizeof(logbuf)-1)] = '\0';
- record_clock_stats(&peer->srcadr, logbuf);
+ mprintf_clock_stats(
+ &peer->srcadr, "%3d %3d %3d %3d %3d",
+ up->ticks, up->good, up->notready,
+ up->bad, up->clash);
}
up->ticks = up->good = up->notready = up->bad = up->clash = 0;
-
}
#else
diff --git a/ntpd/refclock_true.c b/ntpd/refclock_true.c
index 36ade81c7ba5..7a5c491bb595 100644
--- a/ntpd/refclock_true.c
+++ b/ntpd/refclock_true.c
@@ -215,6 +215,7 @@ struct refclock refclock_true = {
#if !defined(__STDC__)
# define true_debug (void)
#else
+NTP_PRINTF(2, 3)
static void
true_debug(struct peer *peer, const char *fmt, ...)
{
diff --git a/ntpd/refclock_wwv.c b/ntpd/refclock_wwv.c
index 14183b46ce2d..79c0afd5bcfb 100644
--- a/ntpd/refclock_wwv.c
+++ b/ntpd/refclock_wwv.c
@@ -1338,7 +1338,7 @@ wwv_qrz(
if (sp->reach & (1 << AMAX))
sp->count--;
if (sp->synmax > ATHR && sp->synsnr > ASNR) {
- if (abs(epoch) < AWND * MS) {
+ if (labs(epoch) < AWND * MS) {
sp->reach |= 1;
sp->count++;
sp->mepoch = sp->lastpos = sp->pos;
@@ -1540,14 +1540,14 @@ wwv_endpoc(
*/
dtemp = (mepoch - zepoch) % WWV_SEC;
if (up->status & FGATE) {
- if (abs(dtemp) < MAXFREQ * MINAVG) {
+ if (fabs(dtemp) < MAXFREQ * MINAVG) {
up->freq += (dtemp / 2.) / ((mcount - zcount) *
FCONST);
if (up->freq > MAXFREQ)
up->freq = MAXFREQ;
else if (up->freq < -MAXFREQ)
up->freq = -MAXFREQ;
- if (abs(dtemp) < MAXFREQ * MINAVG / 2.) {
+ if (fabs(dtemp) < MAXFREQ * MINAVG / 2.) {
if (avginc < 3) {
avginc++;
} else {
diff --git a/ntpdate/Makefile.in b/ntpdate/Makefile.in
index d7ffd18d2273..e0e0ec2d02ea 100644
--- a/ntpdate/Makefile.in
+++ b/ntpdate/Makefile.in
@@ -153,6 +153,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -187,7 +188,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/ntpdate/ntpdate.c b/ntpdate/ntpdate.c
index 16569f30b5f4..08edc8be4a7f 100644
--- a/ntpdate/ntpdate.c
+++ b/ntpdate/ntpdate.c
@@ -751,7 +751,7 @@ receive(
*/
if (rbufp->recv_length == LEN_PKT_NOMAC)
has_mac = 0;
- else if (rbufp->recv_length >= LEN_PKT_NOMAC)
+ else if (rbufp->recv_length >= (int)LEN_PKT_NOMAC)
has_mac = 1;
else {
if (debug)
diff --git a/ntpdc/Makefile.in b/ntpdc/Makefile.in
index 1b77fc9dec56..0837bac4b93d 100644
--- a/ntpdc/Makefile.in
+++ b/ntpdc/Makefile.in
@@ -187,6 +187,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -221,7 +222,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/ntpdc/invoke-ntpdc.texi b/ntpdc/invoke-ntpdc.texi
index cc97163ccf0c..8a9eb270d862 100644
--- a/ntpdc/invoke-ntpdc.texi
+++ b/ntpdc/invoke-ntpdc.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpdc.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:49:42 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:42:41 AM by AutoGen 5.18.5pre4
# From the definitions ntpdc-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -76,7 +76,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpdc - vendor-specific NTPD control program - Ver. 4.2.8
+ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p1
Usage: ntpdc [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
diff --git a/ntpdc/ntpdc-opts.c b/ntpdc/ntpdc-opts.c
index 11ba2cce359e..070501d00e6c 100644
--- a/ntpdc/ntpdc-opts.c
+++ b/ntpdc/ntpdc-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.c)
*
- * It has been AutoGen-ed December 19, 2014 at 07:49:26 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:42:23 AM by AutoGen 5.18.5pre4
* From the definitions ntpdc-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpdc program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -50,7 +50,7 @@ extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpdc_opt_strs+0)
-#define zLicenseDescrip (ntpdc_opt_strs+311)
+#define zLicenseDescrip (ntpdc_opt_strs+341)
/*
* global included definitions
@@ -68,84 +68,85 @@ extern FILE * option_usage_fp;
/**
* static const strings for ntpdc options
*/
-static char const ntpdc_opt_strs[1849] =
-/* 0 */ "ntpdc 4.2.8\n"
- "Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n"
+static char const ntpdc_opt_strs[1911] =
+/* 0 */ "ntpdc 4.2.8p1\n"
+ "Copyright (C) 1992-2015 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"
-/* 311 */ "Permission to use, copy, modify, and distribute this software and its\n"
+/* 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 makes no\n"
- "representations about the suitability this software for any purpose. It is\n"
- "provided \"as is\" without express or implied warranty.\n\0"
-/* 951 */ "Force IPv4 DNS name resolution\0"
-/* 982 */ "IPV4\0"
-/* 987 */ "ipv4\0"
-/* 992 */ "Force IPv6 DNS name resolution\0"
-/* 1023 */ "IPV6\0"
-/* 1028 */ "ipv6\0"
-/* 1033 */ "run a command and exit\0"
-/* 1056 */ "COMMAND\0"
-/* 1064 */ "command\0"
-/* 1072 */ "Increase debug verbosity level\0"
-/* 1103 */ "DEBUG_LEVEL\0"
-/* 1115 */ "debug-level\0"
-/* 1127 */ "Set the debug verbosity level\0"
-/* 1157 */ "SET_DEBUG_LEVEL\0"
-/* 1173 */ "set-debug-level\0"
-/* 1189 */ "Force ntpq to operate in interactive mode\0"
-/* 1231 */ "INTERACTIVE\0"
-/* 1243 */ "interactive\0"
-/* 1255 */ "Print a list of the peers\0"
-/* 1281 */ "LISTPEERS\0"
-/* 1291 */ "listpeers\0"
-/* 1301 */ "numeric host addresses\0"
-/* 1324 */ "NUMERIC\0"
-/* 1332 */ "numeric\0"
-/* 1340 */ "PEERS\0"
-/* 1346 */ "peers\0"
-/* 1352 */ "Show a list of the peers\0"
-/* 1377 */ "SHOWPEERS\0"
-/* 1387 */ "showpeers\0"
-/* 1397 */ "display extended usage information and exit\0"
-/* 1441 */ "help\0"
-/* 1446 */ "extended usage information passed thru pager\0"
-/* 1491 */ "more-help\0"
-/* 1501 */ "output version information and exit\0"
-/* 1537 */ "version\0"
-/* 1545 */ "save the option state to a config file\0"
-/* 1584 */ "save-opts\0"
-/* 1594 */ "load options from a config file\0"
-/* 1626 */ "LOAD_OPTS\0"
-/* 1636 */ "no-load-opts\0"
-/* 1649 */ "no\0"
-/* 1652 */ "NTPDC\0"
-/* 1658 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8\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 */ "run a command and exit\0"
+/* 1114 */ "COMMAND\0"
+/* 1122 */ "command\0"
+/* 1130 */ "Increase debug verbosity level\0"
+/* 1161 */ "DEBUG_LEVEL\0"
+/* 1173 */ "debug-level\0"
+/* 1185 */ "Set the debug verbosity level\0"
+/* 1215 */ "SET_DEBUG_LEVEL\0"
+/* 1231 */ "set-debug-level\0"
+/* 1247 */ "Force ntpq to operate in interactive mode\0"
+/* 1289 */ "INTERACTIVE\0"
+/* 1301 */ "interactive\0"
+/* 1313 */ "Print a list of the peers\0"
+/* 1339 */ "LISTPEERS\0"
+/* 1349 */ "listpeers\0"
+/* 1359 */ "numeric host addresses\0"
+/* 1382 */ "NUMERIC\0"
+/* 1390 */ "numeric\0"
+/* 1398 */ "PEERS\0"
+/* 1404 */ "peers\0"
+/* 1410 */ "Show a list of the peers\0"
+/* 1435 */ "SHOWPEERS\0"
+/* 1445 */ "showpeers\0"
+/* 1455 */ "display extended usage information and exit\0"
+/* 1499 */ "help\0"
+/* 1504 */ "extended usage information passed thru pager\0"
+/* 1549 */ "more-help\0"
+/* 1559 */ "output version information and exit\0"
+/* 1595 */ "version\0"
+/* 1603 */ "save the option state to a config file\0"
+/* 1642 */ "save-opts\0"
+/* 1652 */ "load options from a config file\0"
+/* 1684 */ "LOAD_OPTS\0"
+/* 1694 */ "no-load-opts\0"
+/* 1707 */ "no\0"
+/* 1710 */ "NTPDC\0"
+/* 1716 */ "ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p1\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
-/* 1786 */ "$HOME\0"
-/* 1792 */ ".\0"
-/* 1794 */ ".ntprc\0"
-/* 1801 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 1835 */ "\n\0"
-/* 1837 */ "ntpdc 4.2.8";
+/* 1846 */ "$HOME\0"
+/* 1852 */ ".\0"
+/* 1854 */ ".ntprc\0"
+/* 1861 */ "http://bugs.ntp.org, bugs@ntp.org\0"
+/* 1895 */ "\n\0"
+/* 1897 */ "ntpdc 4.2.8p1";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
-#define IPV4_DESC (ntpdc_opt_strs+951)
+#define IPV4_DESC (ntpdc_opt_strs+1009)
/** Upper-cased name for the ipv4 option */
-#define IPV4_NAME (ntpdc_opt_strs+982)
+#define IPV4_NAME (ntpdc_opt_strs+1040)
/** Name string for the ipv4 option */
-#define IPV4_name (ntpdc_opt_strs+987)
+#define IPV4_name (ntpdc_opt_strs+1045)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
@@ -157,11 +158,11 @@ static int const aIpv4CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
-#define IPV6_DESC (ntpdc_opt_strs+992)
+#define IPV6_DESC (ntpdc_opt_strs+1050)
/** Upper-cased name for the ipv6 option */
-#define IPV6_NAME (ntpdc_opt_strs+1023)
+#define IPV6_NAME (ntpdc_opt_strs+1081)
/** Name string for the ipv6 option */
-#define IPV6_name (ntpdc_opt_strs+1028)
+#define IPV6_name (ntpdc_opt_strs+1086)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
@@ -172,11 +173,11 @@ static int const aIpv6CantList[] = {
* command option description:
*/
/** Descriptive text for the command option */
-#define COMMAND_DESC (ntpdc_opt_strs+1033)
+#define COMMAND_DESC (ntpdc_opt_strs+1091)
/** Upper-cased name for the command option */
-#define COMMAND_NAME (ntpdc_opt_strs+1056)
+#define COMMAND_NAME (ntpdc_opt_strs+1114)
/** Name string for the command option */
-#define COMMAND_name (ntpdc_opt_strs+1064)
+#define COMMAND_name (ntpdc_opt_strs+1122)
/** Compiled in flag settings for the command option */
#define COMMAND_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -185,11 +186,11 @@ static int const aIpv6CantList[] = {
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
-#define DEBUG_LEVEL_DESC (ntpdc_opt_strs+1072)
+#define DEBUG_LEVEL_DESC (ntpdc_opt_strs+1130)
/** Upper-cased name for the debug-level option */
-#define DEBUG_LEVEL_NAME (ntpdc_opt_strs+1103)
+#define DEBUG_LEVEL_NAME (ntpdc_opt_strs+1161)
/** Name string for the debug-level option */
-#define DEBUG_LEVEL_name (ntpdc_opt_strs+1115)
+#define DEBUG_LEVEL_name (ntpdc_opt_strs+1173)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
@@ -197,11 +198,11 @@ static int const aIpv6CantList[] = {
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
-#define SET_DEBUG_LEVEL_DESC (ntpdc_opt_strs+1127)
+#define SET_DEBUG_LEVEL_DESC (ntpdc_opt_strs+1185)
/** Upper-cased name for the set-debug-level option */
-#define SET_DEBUG_LEVEL_NAME (ntpdc_opt_strs+1157)
+#define SET_DEBUG_LEVEL_NAME (ntpdc_opt_strs+1215)
/** Name string for the set-debug-level option */
-#define SET_DEBUG_LEVEL_name (ntpdc_opt_strs+1173)
+#define SET_DEBUG_LEVEL_name (ntpdc_opt_strs+1231)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -211,11 +212,11 @@ static int const aIpv6CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the interactive option */
-#define INTERACTIVE_DESC (ntpdc_opt_strs+1189)
+#define INTERACTIVE_DESC (ntpdc_opt_strs+1247)
/** Upper-cased name for the interactive option */
-#define INTERACTIVE_NAME (ntpdc_opt_strs+1231)
+#define INTERACTIVE_NAME (ntpdc_opt_strs+1289)
/** Name string for the interactive option */
-#define INTERACTIVE_name (ntpdc_opt_strs+1243)
+#define INTERACTIVE_name (ntpdc_opt_strs+1301)
/** Other options that appear in conjunction with the interactive option */
static int const aInteractiveCantList[] = {
INDEX_OPT_COMMAND,
@@ -230,11 +231,11 @@ static int const aInteractiveCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the listpeers option */
-#define LISTPEERS_DESC (ntpdc_opt_strs+1255)
+#define LISTPEERS_DESC (ntpdc_opt_strs+1313)
/** Upper-cased name for the listpeers option */
-#define LISTPEERS_NAME (ntpdc_opt_strs+1281)
+#define LISTPEERS_NAME (ntpdc_opt_strs+1339)
/** Name string for the listpeers option */
-#define LISTPEERS_name (ntpdc_opt_strs+1291)
+#define LISTPEERS_name (ntpdc_opt_strs+1349)
/** Other options that appear in conjunction with the listpeers option */
static int const aListpeersCantList[] = {
INDEX_OPT_COMMAND, NO_EQUIVALENT };
@@ -245,11 +246,11 @@ static int const aListpeersCantList[] = {
* numeric option description:
*/
/** Descriptive text for the numeric option */
-#define NUMERIC_DESC (ntpdc_opt_strs+1301)
+#define NUMERIC_DESC (ntpdc_opt_strs+1359)
/** Upper-cased name for the numeric option */
-#define NUMERIC_NAME (ntpdc_opt_strs+1324)
+#define NUMERIC_NAME (ntpdc_opt_strs+1382)
/** Name string for the numeric option */
-#define NUMERIC_name (ntpdc_opt_strs+1332)
+#define NUMERIC_name (ntpdc_opt_strs+1390)
/** Compiled in flag settings for the numeric option */
#define NUMERIC_FLAGS (OPTST_DISABLED)
@@ -258,11 +259,11 @@ static int const aListpeersCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the peers option */
-#define PEERS_DESC (ntpdc_opt_strs+1255)
+#define PEERS_DESC (ntpdc_opt_strs+1313)
/** Upper-cased name for the peers option */
-#define PEERS_NAME (ntpdc_opt_strs+1340)
+#define PEERS_NAME (ntpdc_opt_strs+1398)
/** Name string for the peers option */
-#define PEERS_name (ntpdc_opt_strs+1346)
+#define PEERS_name (ntpdc_opt_strs+1404)
/** Other options that appear in conjunction with the peers option */
static int const aPeersCantList[] = {
INDEX_OPT_COMMAND, NO_EQUIVALENT };
@@ -274,11 +275,11 @@ static int const aPeersCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the showpeers option */
-#define SHOWPEERS_DESC (ntpdc_opt_strs+1352)
+#define SHOWPEERS_DESC (ntpdc_opt_strs+1410)
/** Upper-cased name for the showpeers option */
-#define SHOWPEERS_NAME (ntpdc_opt_strs+1377)
+#define SHOWPEERS_NAME (ntpdc_opt_strs+1435)
/** Name string for the showpeers option */
-#define SHOWPEERS_name (ntpdc_opt_strs+1387)
+#define SHOWPEERS_name (ntpdc_opt_strs+1445)
/** Other options that appear in conjunction with the showpeers option */
static int const aShowpeersCantList[] = {
INDEX_OPT_COMMAND, NO_EQUIVALENT };
@@ -288,11 +289,11 @@ static int const aShowpeersCantList[] = {
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (ntpdc_opt_strs+1397)
-#define HELP_name (ntpdc_opt_strs+1441)
+#define HELP_DESC (ntpdc_opt_strs+1455)
+#define HELP_name (ntpdc_opt_strs+1499)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (ntpdc_opt_strs+1446)
-#define MORE_HELP_name (ntpdc_opt_strs+1491)
+#define MORE_HELP_DESC (ntpdc_opt_strs+1504)
+#define MORE_HELP_name (ntpdc_opt_strs+1549)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -305,14 +306,14 @@ static int const aShowpeersCantList[] = {
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (ntpdc_opt_strs+1501)
-#define VER_name (ntpdc_opt_strs+1537)
-#define SAVE_OPTS_DESC (ntpdc_opt_strs+1545)
-#define SAVE_OPTS_name (ntpdc_opt_strs+1584)
-#define LOAD_OPTS_DESC (ntpdc_opt_strs+1594)
-#define LOAD_OPTS_NAME (ntpdc_opt_strs+1626)
-#define NO_LOAD_OPTS_name (ntpdc_opt_strs+1636)
-#define LOAD_OPTS_pfx (ntpdc_opt_strs+1649)
+#define VER_DESC (ntpdc_opt_strs+1559)
+#define VER_name (ntpdc_opt_strs+1595)
+#define SAVE_OPTS_DESC (ntpdc_opt_strs+1603)
+#define SAVE_OPTS_name (ntpdc_opt_strs+1642)
+#define LOAD_OPTS_DESC (ntpdc_opt_strs+1652)
+#define LOAD_OPTS_NAME (ntpdc_opt_strs+1684)
+#define NO_LOAD_OPTS_name (ntpdc_opt_strs+1694)
+#define LOAD_OPTS_pfx (ntpdc_opt_strs+1707)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
@@ -521,24 +522,24 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpdc. */
-#define zPROGNAME (ntpdc_opt_strs+1652)
+#define zPROGNAME (ntpdc_opt_strs+1710)
/** Reference to the title line for ntpdc usage. */
-#define zUsageTitle (ntpdc_opt_strs+1658)
+#define zUsageTitle (ntpdc_opt_strs+1716)
/** ntpdc configuration file name. */
-#define zRcName (ntpdc_opt_strs+1794)
+#define zRcName (ntpdc_opt_strs+1854)
/** Directories to search for ntpdc config files. */
static char const * const apzHomeList[3] = {
- ntpdc_opt_strs+1786,
- ntpdc_opt_strs+1792,
+ ntpdc_opt_strs+1846,
+ ntpdc_opt_strs+1852,
NULL };
/** The ntpdc program bug email address. */
-#define zBugsAddr (ntpdc_opt_strs+1801)
+#define zBugsAddr (ntpdc_opt_strs+1861)
/** Clarification/explanation of what ntpdc does. */
-#define zExplain (ntpdc_opt_strs+1835)
+#define zExplain (ntpdc_opt_strs+1895)
/** Extra detail explaining what ntpdc does. */
#define zDetail (NULL)
/** The full version string for ntpdc. */
-#define zFullVersion (ntpdc_opt_strs+1837)
+#define zFullVersion (ntpdc_opt_strs+1897)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -795,8 +796,8 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpdcOptions.pzCopyright */
- puts(_("ntpdc 4.2.8\n\
-Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n\
+ puts(_("ntpdc 4.2.8p1\n\
+Copyright (C) 1992-2015 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"));
@@ -810,9 +811,10 @@ 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 makes no\n\
-representations about the suitability this software for any purpose. It is\n\
-provided \"as is\" without express or implied warranty.\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"));
@@ -860,14 +862,14 @@ provided \"as is\" without express or implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntpdcOptions.pzUsageTitle */
- puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8\n\
+ puts(_("ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p1\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
/* referenced via ntpdcOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpdcOptions.pzFullVersion */
- puts(_("ntpdc 4.2.8"));
+ puts(_("ntpdc 4.2.8p1"));
/* referenced via ntpdcOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpdc/ntpdc-opts.h b/ntpdc/ntpdc-opts.h
index 31e72bb15b5d..e9a3f2c8ee8e 100644
--- a/ntpdc/ntpdc-opts.h
+++ b/ntpdc/ntpdc-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpdc-opts.h)
*
- * It has been AutoGen-ed December 19, 2014 at 07:49:25 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:42:23 AM by AutoGen 5.18.5pre4
* From the definitions ntpdc-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpdc program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -83,9 +83,9 @@ typedef enum {
/** count of all options for ntpdc */
#define OPTION_CT 15
/** ntpdc version */
-#define NTPDC_VERSION "4.2.8"
+#define NTPDC_VERSION "4.2.8p1"
/** Full ntpdc version text */
-#define NTPDC_FULL_VERSION "ntpdc 4.2.8"
+#define NTPDC_FULL_VERSION "ntpdc 4.2.8p1"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpdc/ntpdc.1ntpdcman b/ntpdc/ntpdc.1ntpdcman
index 861fade98039..5a9e25354190 100644
--- a/ntpdc/ntpdc.1ntpdcman
+++ b/ntpdc/ntpdc.1ntpdcman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpdc 1ntpdcman "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpdc 1ntpdcman "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Fraief/ag-Rraadf)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-DnaiLq/ag-QnaaKq)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:38 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:37 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpdc-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -848,7 +848,7 @@ RFC1305
.SH AUTHORS
The formatting directives in this document came from FreeBSD.
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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
diff --git a/ntpdc/ntpdc.1ntpdcmdoc b/ntpdc/ntpdc.1ntpdcmdoc
index 7c8693db08e0..c1681b026a50 100644
--- a/ntpdc/ntpdc.1ntpdcmdoc
+++ b/ntpdc/ntpdc.1ntpdcmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPDC 1ntpdcmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:44 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:44 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpdc-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -787,7 +787,7 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.Sh AUTHORS
The formatting directives in this document came from FreeBSD.
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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
diff --git a/ntpdc/ntpdc.c b/ntpdc/ntpdc.c
index 35951841e81a..ce35bd4e2308 100644
--- a/ntpdc/ntpdc.c
+++ b/ntpdc/ntpdc.c
@@ -96,8 +96,10 @@ static void hostnames (struct parse *, FILE *);
static void setdebug (struct parse *, FILE *);
static void quit (struct parse *, FILE *);
static void version (struct parse *, FILE *);
-static void warning (const char *, const char *, const char *);
-static void error (const char *, const char *, const char *);
+static void warning (const char *, ...)
+ __attribute__((__format__(__printf__, 1, 2)));
+static void error (const char *, ...)
+ __attribute__((__format__(__printf__, 1, 2)));
static u_long getkeyid (const char *);
@@ -506,7 +508,7 @@ openhost(
sockfd = socket(ai->ai_family, SOCK_DGRAM, 0);
if (sockfd == INVALID_SOCKET) {
- error("socket", "", "");
+ error("socket");
exit(-1);
}
@@ -517,7 +519,7 @@ openhost(
if (setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF,
&rbufsize, sizeof(int)) == -1)
- error("setsockopt", "", "");
+ error("setsockopt");
}
# endif
#endif
@@ -528,7 +530,7 @@ openhost(
#else
if (connect(sockfd, ai->ai_addr, ai->ai_addrlen) == -1) {
#endif /* SYS_VXWORKS */
- error("connect", "", "");
+ error("connect");
exit(-1);
}
@@ -551,7 +553,7 @@ sendpkt(
)
{
if (send(sockfd, xdata, xdatalen, 0) == -1) {
- warning("write to %s failed", currenthost, "");
+ warning("write to %s failed", currenthost);
return -1;
}
@@ -600,7 +602,7 @@ getresponse(
int numrecv;
int seq;
fd_set fds;
- int n;
+ ssize_t n;
int pad;
/*
@@ -629,7 +631,7 @@ getresponse(
n = select(sockfd+1, &fds, (fd_set *)0, (fd_set *)0, &tvo);
if (n == -1) {
- warning("select fails", "", "");
+ warning("select fails");
return -1;
}
if (n == 0) {
@@ -648,7 +650,7 @@ getresponse(
printf("Received sequence numbers");
for (n = 0; n <= MAXSEQ; n++)
if (haveseq[n])
- printf(" %d,", n);
+ printf(" %zd,", n);
if (lastseq != 999)
printf(" last frame received\n");
else
@@ -660,7 +662,7 @@ getresponse(
n = recv(sockfd, (char *)&rpkt, sizeof(rpkt), 0);
if (n == -1) {
- warning("read", "", "");
+ warning("read");
return -1;
}
@@ -668,9 +670,9 @@ getresponse(
/*
* Check for format errors. Bug proofing.
*/
- if (n < RESP_HEADER_SIZE) {
+ if (n < (ssize_t)RESP_HEADER_SIZE) {
if (debug)
- printf("Short (%d byte) packet received\n", n);
+ printf("Short (%zd byte) packet received\n", n);
goto again;
}
if (INFO_VERSION(rpkt.rm_vn_mode) > NTP_VERSION ||
@@ -738,8 +740,8 @@ getresponse(
if ((size_t)datasize > (n-RESP_HEADER_SIZE)) {
if (debug)
printf(
- "Received items %d, size %d (total %d), data in packet is %lu\n",
- items, size, datasize, (u_long)(n-RESP_HEADER_SIZE));
+ "Received items %d, size %d (total %d), data in packet is %zu\n",
+ items, size, datasize, n-RESP_HEADER_SIZE);
goto again;
}
@@ -920,11 +922,11 @@ sendrequest(
if (!maclen) {
fprintf(stderr, "Key not found\n");
return 1;
- } else if (maclen != (info_auth_hashlen + sizeof(keyid_t))) {
+ } else if (maclen != (int)(info_auth_hashlen + sizeof(keyid_t))) {
fprintf(stderr,
- "%d octet MAC, %lu expected with %lu octet digest\n",
- maclen, (u_long)(info_auth_hashlen + sizeof(keyid_t)),
- (u_long)info_auth_hashlen);
+ "%d octet MAC, %zu expected with %zu octet digest\n",
+ maclen, (info_auth_hashlen + sizeof(keyid_t)),
+ info_auth_hashlen);
return 1;
}
return sendpkt(&qpkt, reqsize + maclen);
@@ -973,7 +975,7 @@ again:
res = select(sockfd+1, &fds, (fd_set *)0, (fd_set *)0, &tvzero);
if (res == -1) {
- warning("polling select", "", "");
+ warning("polling select");
return -1;
} else if (res > 0)
@@ -1868,34 +1870,44 @@ version(
}
+static void __attribute__((__format__(__printf__, 1, 0)))
+vwarning(const char *fmt, va_list ap)
+{
+ int serrno = errno;
+ (void) fprintf(stderr, "%s: ", progname);
+ vfprintf(stderr, fmt, ap);
+ (void) fprintf(stderr, ": %s\n", strerror(serrno));
+}
+
/*
* warning - print a warning message
*/
-static void
+static void __attribute__((__format__(__printf__, 1, 2)))
warning(
const char *fmt,
- const char *st1,
- const char *st2
+ ...
)
{
- (void) fprintf(stderr, "%s: ", progname);
- (void) fprintf(stderr, fmt, st1, st2);
- (void) fprintf(stderr, ": ");
- perror("");
+ va_list ap;
+ va_start(ap, fmt);
+ vwarning(fmt, ap);
+ va_end(ap);
}
/*
* error - print a message and exit
*/
-static void
+static void __attribute__((__format__(__printf__, 1, 2)))
error(
const char *fmt,
- const char *st1,
- const char *st2
+ ...
)
{
- warning(fmt, st1, st2);
+ va_list ap;
+ va_start(ap, fmt);
+ vwarning(fmt, ap);
+ va_end(ap);
exit(1);
}
diff --git a/ntpdc/ntpdc.h b/ntpdc/ntpdc.h
index bfc222863f39..6da4a5cb765d 100644
--- a/ntpdc/ntpdc.h
+++ b/ntpdc/ntpdc.h
@@ -43,7 +43,7 @@ typedef struct {
struct parse {
char *keyword;
arg_v argval[MAXARGS + MOREARGS];
- int nargs;
+ size_t nargs;
};
/*
diff --git a/ntpdc/ntpdc.html b/ntpdc/ntpdc.html
index 3e450ce049dc..1b6260bf1e03 100644
--- a/ntpdc/ntpdc.html
+++ b/ntpdc/ntpdc.html
@@ -36,7 +36,7 @@ display the time offset of the system clock relative to the server
clock. Run as root, it can correct the system clock to this offset as
well. It can be run as an interactive command or from a cron job.
- <p>This document applies to version 4.2.8 of <code>ntpdc</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntpdc</code>.
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
IETF specification.
@@ -152,7 +152,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8
+<pre class="example">ntpdc - vendor-specific NTPD control program - Ver. 4.2.8p1
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
diff --git a/ntpdc/ntpdc.man.in b/ntpdc/ntpdc.man.in
index f3814324b868..281727e4e24b 100644
--- a/ntpdc/ntpdc.man.in
+++ b/ntpdc/ntpdc.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpdc @NTPDC_MS@ "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpdc @NTPDC_MS@ "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Fraief/ag-Rraadf)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-DnaiLq/ag-QnaaKq)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:38 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:37 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpdc-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -848,7 +848,7 @@ RFC1305
.SH AUTHORS
The formatting directives in this document came from FreeBSD.
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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
diff --git a/ntpdc/ntpdc.mdoc.in b/ntpdc/ntpdc.mdoc.in
index ee074f162c05..d6f3feb6cef1 100644
--- a/ntpdc/ntpdc.mdoc.in
+++ b/ntpdc/ntpdc.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPDC @NTPDC_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpdc-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:49:44 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:42:44 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpdc-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -787,7 +787,7 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.Sh AUTHORS
The formatting directives in this document came from FreeBSD.
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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
diff --git a/ntpdc/ntpdc_ops.c b/ntpdc/ntpdc_ops.c
index b0e7af05b447..be8ffa24a755 100644
--- a/ntpdc/ntpdc_ops.c
+++ b/ntpdc/ntpdc_ops.c
@@ -1346,7 +1346,7 @@ again:
sendsize = v4sizeof(struct conf_peer);
items = 1;
- while (pcmd->nargs > items) {
+ while (pcmd->nargs > (size_t)items) {
if (STREQ(pcmd->argval[items].string, "prefer"))
flags |= CONF_FLAG_PREFER;
else if (STREQ(pcmd->argval[items].string, "burst"))
@@ -1571,7 +1571,7 @@ doset(
sys.flags = 0;
res = 0;
- for (items = 0; items < pcmd->nargs; items++) {
+ for (items = 0; (size_t)items < pcmd->nargs; items++) {
if (STREQ(pcmd->argval[items].string, "auth"))
sys.flags |= SYS_FLAG_AUTH;
else if (STREQ(pcmd->argval[items].string, "bclient"))
@@ -1833,7 +1833,7 @@ do_restrict(
u_int32 num;
u_long bit;
int i;
- int res;
+ size_t res;
int err;
int sendsize;
@@ -2095,7 +2095,7 @@ reset(
int itemsize;
char *dummy;
int i;
- int res;
+ size_t res;
int err;
err = 0;
@@ -2262,7 +2262,7 @@ do_trustkey(
)
{
u_long keyids[MAXARGS];
- int i;
+ size_t i;
int items;
int itemsize;
char *dummy;
@@ -3055,7 +3055,7 @@ iflist(
int res
)
{
- static char *actions = "?.+-";
+ static const char *actions = "?.+-";
sockaddr_u saddr;
if (res != 0)
diff --git a/ntpq/Makefile.in b/ntpq/Makefile.in
index d42493758a12..a58363ca8c7c 100644
--- a/ntpq/Makefile.in
+++ b/ntpq/Makefile.in
@@ -194,6 +194,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -228,7 +229,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/ntpq/invoke-ntpq.texi b/ntpq/invoke-ntpq.texi
index 017081dc2fa2..7a1b8950222b 100644
--- a/ntpq/invoke-ntpq.texi
+++ b/ntpq/invoke-ntpq.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpq.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:50:17 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:43:17 AM by AutoGen 5.18.5pre4
# From the definitions ntpq-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -835,7 +835,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpq - standard NTP query program - Ver. 4.2.8
+ntpq - standard NTP query program - Ver. 4.2.8p1
Usage: ntpq [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [ host ...]
Flg Arg Option-Name Description
-4 no ipv4 Force IPv4 DNS name resolution
diff --git a/ntpq/ntpq-opts.c b/ntpq/ntpq-opts.c
index fe2a8fe82033..9c4de559130f 100644
--- a/ntpq/ntpq-opts.c
+++ b/ntpq/ntpq-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpq-opts.c)
*
- * It has been AutoGen-ed December 19, 2014 at 07:49:47 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:42:46 AM by AutoGen 5.18.5pre4
* From the definitions ntpq-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpq program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -50,7 +50,7 @@ extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpq_opt_strs+0)
-#define zLicenseDescrip (ntpq_opt_strs+310)
+#define zLicenseDescrip (ntpq_opt_strs+340)
/*
* global included definitions
@@ -68,84 +68,85 @@ extern FILE * option_usage_fp;
/**
* static const strings for ntpq options
*/
-static char const ntpq_opt_strs[1863] =
-/* 0 */ "ntpq 4.2.8\n"
- "Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n"
+static char const ntpq_opt_strs[1925] =
+/* 0 */ "ntpq 4.2.8p1\n"
+ "Copyright (C) 1992-2015 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"
-/* 310 */ "Permission to use, copy, modify, and distribute this software and its\n"
+/* 340 */ "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 makes no\n"
- "representations about the suitability this software for any purpose. It is\n"
- "provided \"as is\" without express or implied warranty.\n\0"
-/* 950 */ "Force IPv4 DNS name resolution\0"
-/* 981 */ "IPV4\0"
-/* 986 */ "ipv4\0"
-/* 991 */ "Force IPv6 DNS name resolution\0"
-/* 1022 */ "IPV6\0"
-/* 1027 */ "ipv6\0"
-/* 1032 */ "run a command and exit\0"
-/* 1055 */ "COMMAND\0"
-/* 1063 */ "command\0"
-/* 1071 */ "Increase debug verbosity level\0"
-/* 1102 */ "DEBUG_LEVEL\0"
-/* 1114 */ "debug-level\0"
-/* 1126 */ "Set the debug verbosity level\0"
-/* 1156 */ "SET_DEBUG_LEVEL\0"
-/* 1172 */ "set-debug-level\0"
-/* 1188 */ "Force ntpq to operate in interactive mode\0"
-/* 1230 */ "INTERACTIVE\0"
-/* 1242 */ "interactive\0"
-/* 1254 */ "numeric host addresses\0"
-/* 1277 */ "NUMERIC\0"
-/* 1285 */ "numeric\0"
-/* 1293 */ "Always output status line with readvar\0"
-/* 1332 */ "OLD_RV\0"
-/* 1339 */ "old-rv\0"
-/* 1346 */ "Print a list of the peers\0"
-/* 1372 */ "PEERS\0"
-/* 1378 */ "peers\0"
-/* 1384 */ "Display the full 'remote' value\0"
-/* 1416 */ "WIDE\0"
-/* 1421 */ "wide\0"
-/* 1426 */ "display extended usage information and exit\0"
-/* 1470 */ "help\0"
-/* 1475 */ "extended usage information passed thru pager\0"
-/* 1520 */ "more-help\0"
-/* 1530 */ "output version information and exit\0"
-/* 1566 */ "version\0"
-/* 1574 */ "save the option state to a config file\0"
-/* 1613 */ "save-opts\0"
-/* 1623 */ "load options from a config file\0"
-/* 1655 */ "LOAD_OPTS\0"
-/* 1665 */ "no-load-opts\0"
-/* 1678 */ "no\0"
-/* 1681 */ "NTPQ\0"
-/* 1686 */ "ntpq - standard NTP query program - Ver. 4.2.8\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"
+/* 1008 */ "Force IPv4 DNS name resolution\0"
+/* 1039 */ "IPV4\0"
+/* 1044 */ "ipv4\0"
+/* 1049 */ "Force IPv6 DNS name resolution\0"
+/* 1080 */ "IPV6\0"
+/* 1085 */ "ipv6\0"
+/* 1090 */ "run a command and exit\0"
+/* 1113 */ "COMMAND\0"
+/* 1121 */ "command\0"
+/* 1129 */ "Increase debug verbosity level\0"
+/* 1160 */ "DEBUG_LEVEL\0"
+/* 1172 */ "debug-level\0"
+/* 1184 */ "Set the debug verbosity level\0"
+/* 1214 */ "SET_DEBUG_LEVEL\0"
+/* 1230 */ "set-debug-level\0"
+/* 1246 */ "Force ntpq to operate in interactive mode\0"
+/* 1288 */ "INTERACTIVE\0"
+/* 1300 */ "interactive\0"
+/* 1312 */ "numeric host addresses\0"
+/* 1335 */ "NUMERIC\0"
+/* 1343 */ "numeric\0"
+/* 1351 */ "Always output status line with readvar\0"
+/* 1390 */ "OLD_RV\0"
+/* 1397 */ "old-rv\0"
+/* 1404 */ "Print a list of the peers\0"
+/* 1430 */ "PEERS\0"
+/* 1436 */ "peers\0"
+/* 1442 */ "Display the full 'remote' value\0"
+/* 1474 */ "WIDE\0"
+/* 1479 */ "wide\0"
+/* 1484 */ "display extended usage information and exit\0"
+/* 1528 */ "help\0"
+/* 1533 */ "extended usage information passed thru pager\0"
+/* 1578 */ "more-help\0"
+/* 1588 */ "output version information and exit\0"
+/* 1624 */ "version\0"
+/* 1632 */ "save the option state to a config file\0"
+/* 1671 */ "save-opts\0"
+/* 1681 */ "load options from a config file\0"
+/* 1713 */ "LOAD_OPTS\0"
+/* 1723 */ "no-load-opts\0"
+/* 1736 */ "no\0"
+/* 1739 */ "NTPQ\0"
+/* 1744 */ "ntpq - standard NTP query program - Ver. 4.2.8p1\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n\0"
-/* 1803 */ "$HOME\0"
-/* 1809 */ ".\0"
-/* 1811 */ ".ntprc\0"
-/* 1818 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 1852 */ "ntpq 4.2.8";
+/* 1863 */ "$HOME\0"
+/* 1869 */ ".\0"
+/* 1871 */ ".ntprc\0"
+/* 1878 */ "http://bugs.ntp.org, bugs@ntp.org\0"
+/* 1912 */ "ntpq 4.2.8p1";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
-#define IPV4_DESC (ntpq_opt_strs+950)
+#define IPV4_DESC (ntpq_opt_strs+1008)
/** Upper-cased name for the ipv4 option */
-#define IPV4_NAME (ntpq_opt_strs+981)
+#define IPV4_NAME (ntpq_opt_strs+1039)
/** Name string for the ipv4 option */
-#define IPV4_name (ntpq_opt_strs+986)
+#define IPV4_name (ntpq_opt_strs+1044)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
@@ -157,11 +158,11 @@ static int const aIpv4CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
-#define IPV6_DESC (ntpq_opt_strs+991)
+#define IPV6_DESC (ntpq_opt_strs+1049)
/** Upper-cased name for the ipv6 option */
-#define IPV6_NAME (ntpq_opt_strs+1022)
+#define IPV6_NAME (ntpq_opt_strs+1080)
/** Name string for the ipv6 option */
-#define IPV6_name (ntpq_opt_strs+1027)
+#define IPV6_name (ntpq_opt_strs+1085)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
@@ -172,11 +173,11 @@ static int const aIpv6CantList[] = {
* command option description:
*/
/** Descriptive text for the command option */
-#define COMMAND_DESC (ntpq_opt_strs+1032)
+#define COMMAND_DESC (ntpq_opt_strs+1090)
/** Upper-cased name for the command option */
-#define COMMAND_NAME (ntpq_opt_strs+1055)
+#define COMMAND_NAME (ntpq_opt_strs+1113)
/** Name string for the command option */
-#define COMMAND_name (ntpq_opt_strs+1063)
+#define COMMAND_name (ntpq_opt_strs+1121)
/** Compiled in flag settings for the command option */
#define COMMAND_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -185,11 +186,11 @@ static int const aIpv6CantList[] = {
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
-#define DEBUG_LEVEL_DESC (ntpq_opt_strs+1071)
+#define DEBUG_LEVEL_DESC (ntpq_opt_strs+1129)
/** Upper-cased name for the debug-level option */
-#define DEBUG_LEVEL_NAME (ntpq_opt_strs+1102)
+#define DEBUG_LEVEL_NAME (ntpq_opt_strs+1160)
/** Name string for the debug-level option */
-#define DEBUG_LEVEL_name (ntpq_opt_strs+1114)
+#define DEBUG_LEVEL_name (ntpq_opt_strs+1172)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
@@ -197,11 +198,11 @@ static int const aIpv6CantList[] = {
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
-#define SET_DEBUG_LEVEL_DESC (ntpq_opt_strs+1126)
+#define SET_DEBUG_LEVEL_DESC (ntpq_opt_strs+1184)
/** Upper-cased name for the set-debug-level option */
-#define SET_DEBUG_LEVEL_NAME (ntpq_opt_strs+1156)
+#define SET_DEBUG_LEVEL_NAME (ntpq_opt_strs+1214)
/** Name string for the set-debug-level option */
-#define SET_DEBUG_LEVEL_name (ntpq_opt_strs+1172)
+#define SET_DEBUG_LEVEL_name (ntpq_opt_strs+1230)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -211,11 +212,11 @@ static int const aIpv6CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the interactive option */
-#define INTERACTIVE_DESC (ntpq_opt_strs+1188)
+#define INTERACTIVE_DESC (ntpq_opt_strs+1246)
/** Upper-cased name for the interactive option */
-#define INTERACTIVE_NAME (ntpq_opt_strs+1230)
+#define INTERACTIVE_NAME (ntpq_opt_strs+1288)
/** Name string for the interactive option */
-#define INTERACTIVE_name (ntpq_opt_strs+1242)
+#define INTERACTIVE_name (ntpq_opt_strs+1300)
/** Other options that appear in conjunction with the interactive option */
static int const aInteractiveCantList[] = {
INDEX_OPT_COMMAND,
@@ -227,11 +228,11 @@ static int const aInteractiveCantList[] = {
* numeric option description:
*/
/** Descriptive text for the numeric option */
-#define NUMERIC_DESC (ntpq_opt_strs+1254)
+#define NUMERIC_DESC (ntpq_opt_strs+1312)
/** Upper-cased name for the numeric option */
-#define NUMERIC_NAME (ntpq_opt_strs+1277)
+#define NUMERIC_NAME (ntpq_opt_strs+1335)
/** Name string for the numeric option */
-#define NUMERIC_name (ntpq_opt_strs+1285)
+#define NUMERIC_name (ntpq_opt_strs+1343)
/** Compiled in flag settings for the numeric option */
#define NUMERIC_FLAGS (OPTST_DISABLED)
@@ -239,11 +240,11 @@ static int const aInteractiveCantList[] = {
* old-rv option description:
*/
/** Descriptive text for the old-rv option */
-#define OLD_RV_DESC (ntpq_opt_strs+1293)
+#define OLD_RV_DESC (ntpq_opt_strs+1351)
/** Upper-cased name for the old-rv option */
-#define OLD_RV_NAME (ntpq_opt_strs+1332)
+#define OLD_RV_NAME (ntpq_opt_strs+1390)
/** Name string for the old-rv option */
-#define OLD_RV_name (ntpq_opt_strs+1339)
+#define OLD_RV_name (ntpq_opt_strs+1397)
/** Compiled in flag settings for the old-rv option */
#define OLD_RV_FLAGS (OPTST_DISABLED)
@@ -252,11 +253,11 @@ static int const aInteractiveCantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the peers option */
-#define PEERS_DESC (ntpq_opt_strs+1346)
+#define PEERS_DESC (ntpq_opt_strs+1404)
/** Upper-cased name for the peers option */
-#define PEERS_NAME (ntpq_opt_strs+1372)
+#define PEERS_NAME (ntpq_opt_strs+1430)
/** Name string for the peers option */
-#define PEERS_name (ntpq_opt_strs+1378)
+#define PEERS_name (ntpq_opt_strs+1436)
/** Other options that appear in conjunction with the peers option */
static int const aPeersCantList[] = {
INDEX_OPT_INTERACTIVE, NO_EQUIVALENT };
@@ -267,22 +268,22 @@ static int const aPeersCantList[] = {
* wide option description:
*/
/** Descriptive text for the wide option */
-#define WIDE_DESC (ntpq_opt_strs+1384)
+#define WIDE_DESC (ntpq_opt_strs+1442)
/** Upper-cased name for the wide option */
-#define WIDE_NAME (ntpq_opt_strs+1416)
+#define WIDE_NAME (ntpq_opt_strs+1474)
/** Name string for the wide option */
-#define WIDE_name (ntpq_opt_strs+1421)
+#define WIDE_name (ntpq_opt_strs+1479)
/** 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+1426)
-#define HELP_name (ntpq_opt_strs+1470)
+#define HELP_DESC (ntpq_opt_strs+1484)
+#define HELP_name (ntpq_opt_strs+1528)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (ntpq_opt_strs+1475)
-#define MORE_HELP_name (ntpq_opt_strs+1520)
+#define MORE_HELP_DESC (ntpq_opt_strs+1533)
+#define MORE_HELP_name (ntpq_opt_strs+1578)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -295,14 +296,14 @@ static int const aPeersCantList[] = {
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (ntpq_opt_strs+1530)
-#define VER_name (ntpq_opt_strs+1566)
-#define SAVE_OPTS_DESC (ntpq_opt_strs+1574)
-#define SAVE_OPTS_name (ntpq_opt_strs+1613)
-#define LOAD_OPTS_DESC (ntpq_opt_strs+1623)
-#define LOAD_OPTS_NAME (ntpq_opt_strs+1655)
-#define NO_LOAD_OPTS_name (ntpq_opt_strs+1665)
-#define LOAD_OPTS_pfx (ntpq_opt_strs+1678)
+#define VER_DESC (ntpq_opt_strs+1588)
+#define VER_name (ntpq_opt_strs+1624)
+#define SAVE_OPTS_DESC (ntpq_opt_strs+1632)
+#define SAVE_OPTS_name (ntpq_opt_strs+1671)
+#define LOAD_OPTS_DESC (ntpq_opt_strs+1681)
+#define LOAD_OPTS_NAME (ntpq_opt_strs+1713)
+#define NO_LOAD_OPTS_name (ntpq_opt_strs+1723)
+#define LOAD_OPTS_pfx (ntpq_opt_strs+1736)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
@@ -511,24 +512,24 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpq. */
-#define zPROGNAME (ntpq_opt_strs+1681)
+#define zPROGNAME (ntpq_opt_strs+1739)
/** Reference to the title line for ntpq usage. */
-#define zUsageTitle (ntpq_opt_strs+1686)
+#define zUsageTitle (ntpq_opt_strs+1744)
/** ntpq configuration file name. */
-#define zRcName (ntpq_opt_strs+1811)
+#define zRcName (ntpq_opt_strs+1871)
/** Directories to search for ntpq config files. */
static char const * const apzHomeList[3] = {
- ntpq_opt_strs+1803,
- ntpq_opt_strs+1809,
+ ntpq_opt_strs+1863,
+ ntpq_opt_strs+1869,
NULL };
/** The ntpq program bug email address. */
-#define zBugsAddr (ntpq_opt_strs+1818)
+#define zBugsAddr (ntpq_opt_strs+1878)
/** 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+1852)
+#define zFullVersion (ntpq_opt_strs+1912)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -785,8 +786,8 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpqOptions.pzCopyright */
- puts(_("ntpq 4.2.8\n\
-Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n\
+ puts(_("ntpq 4.2.8p1\n\
+Copyright (C) 1992-2015 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"));
@@ -800,9 +801,10 @@ 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 makes no\n\
-representations about the suitability this software for any purpose. It is\n\
-provided \"as is\" without express or implied warranty.\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 DNS name resolution"));
@@ -850,11 +852,11 @@ provided \"as is\" without express or implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntpqOptions.pzUsageTitle */
- puts(_("ntpq - standard NTP query program - Ver. 4.2.8\n\
+ puts(_("ntpq - standard NTP query program - Ver. 4.2.8p1\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [ host ...]\n"));
/* referenced via ntpqOptions.pzFullVersion */
- puts(_("ntpq 4.2.8"));
+ puts(_("ntpq 4.2.8p1"));
/* referenced via ntpqOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpq/ntpq-opts.h b/ntpq/ntpq-opts.h
index 4e42e20ab407..0dfe3dd6e734 100644
--- a/ntpq/ntpq-opts.h
+++ b/ntpq/ntpq-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpq-opts.h)
*
- * It has been AutoGen-ed December 19, 2014 at 07:49:47 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:42:46 AM by AutoGen 5.18.5pre4
* From the definitions ntpq-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpq program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -83,9 +83,9 @@ typedef enum {
/** count of all options for ntpq */
#define OPTION_CT 15
/** ntpq version */
-#define NTPQ_VERSION "4.2.8"
+#define NTPQ_VERSION "4.2.8p1"
/** Full ntpq version text */
-#define NTPQ_FULL_VERSION "ntpq 4.2.8"
+#define NTPQ_FULL_VERSION "ntpq 4.2.8p1"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpq/ntpq-subs.c b/ntpq/ntpq-subs.c
index 5460f80fc93a..56bc2280223f 100644
--- a/ntpq/ntpq-subs.c
+++ b/ntpq/ntpq-subs.c
@@ -269,7 +269,7 @@ char flash2[] = " .+* "; /* flash decode for version 2 */
char flash3[] = " x.-+#*o"; /* flash decode for peer status version 3 */
struct varlist {
- char *name;
+ const char *name;
char *value;
} g_varlist[MAXLIST] = { { 0, 0 } };
@@ -330,7 +330,11 @@ typedef struct var_display_collection_tag {
l_fp lfp; /* NTP_LFP */
} v; /* retrieved value */
} vdc;
-
+#if !defined(MISSING_C99_STYLE_INIT)
+# define VDC_INIT(a, b, c) { .tag = a, .display = b, .type = c }
+#else
+# define VDC_INIT(a, b, c) { a, b, c }
+#endif
/*
* other local function prototypes
*/
@@ -362,7 +366,7 @@ static mru ** hash_table;
* qsort comparison function table for mrulist(). The first two
* entries are NULL because they are handled without qsort().
*/
-const static qsort_cmp mru_qcmp_table[MRUSORT_MAX] = {
+static const qsort_cmp mru_qcmp_table[MRUSORT_MAX] = {
NULL, /* MRUSORT_DEF unused */
NULL, /* MRUSORT_R_DEF unused */
&qcmp_mru_avgint, /* MRUSORT_AVGINT */
@@ -477,7 +481,7 @@ dormvlist(
(void) fprintf(stderr, "Variable `%s' not found\n",
name);
} else {
- free((void *)vl->name);
+ free((void *)(intptr_t)vl->name);
if (vl->value != 0)
free(vl->value);
for ( ; (vl+1) < (g_varlist + MAXLIST)
@@ -502,7 +506,7 @@ doclearvlist(
register struct varlist *vl;
for (vl = vlist; vl < vlist + MAXLIST && vl->name != 0; vl++) {
- free((void *)vl->name);
+ free((void *)(intptr_t)vl->name);
vl->name = 0;
if (vl->value != 0) {
free(vl->value);
@@ -2192,7 +2196,7 @@ fetch_nonce(
return FALSE;
}
- if (rsize <= sizeof(nonce_eq) - 1 ||
+ if ((size_t)rsize <= sizeof(nonce_eq) - 1 ||
strncmp(rdata, nonce_eq, sizeof(nonce_eq) - 1)) {
fprintf(stderr, "unexpected nonce response format: %.*s\n",
rsize, rdata);
@@ -2935,7 +2939,7 @@ mrulist(
double flstint;
int avgint;
int lstint;
- int i;
+ size_t i;
order = MRUSORT_DEF;
parms_buf[0] = '\0';
@@ -3041,7 +3045,7 @@ mrulist(
LFPTOD(&interval, favgint);
favgint /= recent->count;
avgint = (int)(favgint + 0.5);
- fprintf(fp, "%6d %6d %4hx %c %d %d %6d %5hu %s\n",
+ fprintf(fp, "%6d %6d %4hx %c %d %d %6d %5u %s\n",
lstint, avgint, recent->rs,
(RES_KOD & recent->rs)
? 'K'
@@ -3179,7 +3183,6 @@ ifstats(
char * tag;
char * val;
int fields;
- u_int ifnum;
u_int ui;
ifstats_row row;
int comprende;
@@ -3198,7 +3201,6 @@ ifstats(
ZERO(row);
fields = 0;
- ifnum = 0;
ui = 0;
while (nextvar(&dsize, &datap, &tag, &val)) {
if (debug > 1)
@@ -3396,7 +3398,6 @@ reslist(
char * tag;
char * val;
int fields;
- u_int idx;
u_int ui;
reslist_row row;
int comprende;
@@ -3415,7 +3416,6 @@ reslist(
ZERO(row);
fields = 0;
- idx = 0;
ui = 0;
while (nextvar(&dsize, &datap, &tag, &val)) {
if (debug > 1)
@@ -3656,19 +3656,19 @@ sysstats(
)
{
static vdc sysstats_vdc[] = {
- { "ss_uptime", "uptime: ", NTP_STR },
- { "ss_reset", "sysstats reset: ", NTP_STR },
- { "ss_received", "packets received: ", NTP_STR },
- { "ss_thisver", "current version: ", NTP_STR },
- { "ss_oldver", "older version: ", NTP_STR },
- { "ss_badformat", "bad length or format: ", NTP_STR },
- { "ss_badauth", "authentication failed:", NTP_STR },
- { "ss_declined", "declined: ", NTP_STR },
- { "ss_restricted", "restricted: ", NTP_STR },
- { "ss_limited", "rate limited: ", NTP_STR },
- { "ss_kodsent", "KoD responses: ", NTP_STR },
- { "ss_processed", "processed for time: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("ss_uptime", "uptime: ", NTP_STR),
+ VDC_INIT("ss_reset", "sysstats reset: ", NTP_STR),
+ VDC_INIT("ss_received", "packets received: ", NTP_STR),
+ VDC_INIT("ss_thisver", "current version: ", NTP_STR),
+ VDC_INIT("ss_oldver", "older version: ", NTP_STR),
+ VDC_INIT("ss_badformat", "bad length or format: ", NTP_STR),
+ VDC_INIT("ss_badauth", "authentication failed:", NTP_STR),
+ VDC_INIT("ss_declined", "declined: ", NTP_STR),
+ VDC_INIT("ss_restricted", "restricted: ", NTP_STR),
+ VDC_INIT("ss_limited", "rate limited: ", NTP_STR),
+ VDC_INIT("ss_kodsent", "KoD responses: ", NTP_STR),
+ VDC_INIT("ss_processed", "processed for time: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, sysstats_vdc, FALSE, fp);
@@ -3685,21 +3685,21 @@ sysinfo(
)
{
static vdc sysinfo_vdc[] = {
- { "peeradr", "system peer: ", NTP_ADP },
- { "peermode", "system peer mode: ", NTP_MODE },
- { "leap", "leap indicator: ", NTP_2BIT },
- { "stratum", "stratum: ", NTP_STR },
- { "precision", "log2 precision: ", NTP_STR },
- { "rootdelay", "root delay: ", NTP_STR },
- { "rootdisp", "root dispersion: ", NTP_STR },
- { "refid", "reference ID: ", NTP_STR },
- { "reftime", "reference time: ", NTP_LFP },
- { "sys_jitter", "system jitter: ", NTP_STR },
- { "clk_jitter", "clock jitter: ", NTP_STR },
- { "clk_wander", "clock wander: ", NTP_STR },
- { "bcastdelay", "broadcast delay: ", NTP_STR },
- { "authdelay", "symm. auth. delay:", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("peeradr", "system peer: ", NTP_ADP),
+ VDC_INIT("peermode", "system peer mode: ", NTP_MODE),
+ VDC_INIT("leap", "leap indicator: ", NTP_2BIT),
+ VDC_INIT("stratum", "stratum: ", NTP_STR),
+ VDC_INIT("precision", "log2 precision: ", NTP_STR),
+ VDC_INIT("rootdelay", "root delay: ", NTP_STR),
+ VDC_INIT("rootdisp", "root dispersion: ", NTP_STR),
+ VDC_INIT("refid", "reference ID: ", NTP_STR),
+ VDC_INIT("reftime", "reference time: ", NTP_LFP),
+ VDC_INIT("sys_jitter", "system jitter: ", NTP_STR),
+ VDC_INIT("clk_jitter", "clock jitter: ", NTP_STR),
+ VDC_INIT("clk_wander", "clock wander: ", NTP_STR),
+ VDC_INIT("bcastdelay", "broadcast delay: ", NTP_STR),
+ VDC_INIT("authdelay", "symm. auth. delay:", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, sysinfo_vdc, TRUE, fp);
@@ -3716,23 +3716,23 @@ kerninfo(
)
{
static vdc kerninfo_vdc[] = {
- { "koffset", "pll offset: ", NTP_STR },
- { "kfreq", "pll frequency: ", NTP_STR },
- { "kmaxerr", "maximum error: ", NTP_STR },
- { "kesterr", "estimated error: ", NTP_STR },
- { "kstflags", "kernel status: ", NTP_STR },
- { "ktimeconst", "pll time constant: ", NTP_STR },
- { "kprecis", "precision: ", NTP_STR },
- { "kfreqtol", "frequency tolerance: ", NTP_STR },
- { "kppsfreq", "pps frequency: ", NTP_STR },
- { "kppsstab", "pps stability: ", NTP_STR },
- { "kppsjitter", "pps jitter: ", NTP_STR },
- { "kppscalibdur", "calibration interval ", NTP_STR },
- { "kppscalibs", "calibration cycles: ", NTP_STR },
- { "kppsjitexc", "jitter exceeded: ", NTP_STR },
- { "kppsstbexc", "stability exceeded: ", NTP_STR },
- { "kppscaliberrs", "calibration errors: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("koffset", "pll offset: ", NTP_STR),
+ VDC_INIT("kfreq", "pll frequency: ", NTP_STR),
+ VDC_INIT("kmaxerr", "maximum error: ", NTP_STR),
+ VDC_INIT("kesterr", "estimated error: ", NTP_STR),
+ VDC_INIT("kstflags", "kernel status: ", NTP_STR),
+ VDC_INIT("ktimeconst", "pll time constant: ", NTP_STR),
+ VDC_INIT("kprecis", "precision: ", NTP_STR),
+ VDC_INIT("kfreqtol", "frequency tolerance: ", NTP_STR),
+ VDC_INIT("kppsfreq", "pps frequency: ", NTP_STR),
+ VDC_INIT("kppsstab", "pps stability: ", NTP_STR),
+ VDC_INIT("kppsjitter", "pps jitter: ", NTP_STR),
+ VDC_INIT("kppscalibdur", "calibration interval ", NTP_STR),
+ VDC_INIT("kppscalibs", "calibration cycles: ", NTP_STR),
+ VDC_INIT("kppsjitexc", "jitter exceeded: ", NTP_STR),
+ VDC_INIT("kppsstbexc", "stability exceeded: ", NTP_STR),
+ VDC_INIT("kppscaliberrs", "calibration errors: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, kerninfo_vdc, TRUE, fp);
@@ -3749,15 +3749,15 @@ monstats(
)
{
static vdc monstats_vdc[] = {
- { "mru_enabled", "enabled: ", NTP_STR },
- { "mru_depth", "addresses: ", NTP_STR },
- { "mru_deepest", "peak addresses: ", NTP_STR },
- { "mru_maxdepth", "maximum addresses: ", NTP_STR },
- { "mru_mindepth", "reclaim above count:", NTP_STR },
- { "mru_maxage", "reclaim older than: ", NTP_STR },
- { "mru_mem", "kilobytes: ", NTP_STR },
- { "mru_maxmem", "maximum kilobytes: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("mru_enabled", "enabled: ", NTP_STR),
+ VDC_INIT("mru_depth", "addresses: ", NTP_STR),
+ VDC_INIT("mru_deepest", "peak addresses: ", NTP_STR),
+ VDC_INIT("mru_maxdepth", "maximum addresses: ", NTP_STR),
+ VDC_INIT("mru_mindepth", "reclaim above count:", NTP_STR),
+ VDC_INIT("mru_maxage", "reclaim older than: ", NTP_STR),
+ VDC_INIT("mru_mem", "kilobytes: ", NTP_STR),
+ VDC_INIT("mru_maxmem", "maximum kilobytes: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, monstats_vdc, FALSE, fp);
@@ -3774,19 +3774,19 @@ iostats(
)
{
static vdc iostats_vdc[] = {
- { "iostats_reset", "time since reset: ", NTP_STR },
- { "total_rbuf", "receive buffers: ", NTP_STR },
- { "free_rbuf", "free receive buffers: ", NTP_STR },
- { "used_rbuf", "used receive buffers: ", NTP_STR },
- { "rbuf_lowater", "low water refills: ", NTP_STR },
- { "io_dropped", "dropped packets: ", NTP_STR },
- { "io_ignored", "ignored packets: ", NTP_STR },
- { "io_received", "received packets: ", NTP_STR },
- { "io_sent", "packets sent: ", NTP_STR },
- { "io_sendfailed", "packet send failures: ", NTP_STR },
- { "io_wakeups", "input wakeups: ", NTP_STR },
- { "io_goodwakeups", "useful input wakeups: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("iostats_reset", "time since reset: ", NTP_STR),
+ VDC_INIT("total_rbuf", "receive buffers: ", NTP_STR),
+ VDC_INIT("free_rbuf", "free receive buffers: ", NTP_STR),
+ VDC_INIT("used_rbuf", "used receive buffers: ", NTP_STR),
+ VDC_INIT("rbuf_lowater", "low water refills: ", NTP_STR),
+ VDC_INIT("io_dropped", "dropped packets: ", NTP_STR),
+ VDC_INIT("io_ignored", "ignored packets: ", NTP_STR),
+ VDC_INIT("io_received", "received packets: ", NTP_STR),
+ VDC_INIT("io_sent", "packets sent: ", NTP_STR),
+ VDC_INIT("io_sendfailed", "packet send failures: ", NTP_STR),
+ VDC_INIT("io_wakeups", "input wakeups: ", NTP_STR),
+ VDC_INIT("io_goodwakeups", "useful input wakeups: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, iostats_vdc, FALSE, fp);
@@ -3803,10 +3803,10 @@ timerstats(
)
{
static vdc timerstats_vdc[] = {
- { "timerstats_reset", "time since reset: ", NTP_STR },
- { "timer_overruns", "timer overruns: ", NTP_STR },
- { "timer_xmts", "calls to transmit: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("timerstats_reset", "time since reset: ", NTP_STR),
+ VDC_INIT("timer_overruns", "timer overruns: ", NTP_STR),
+ VDC_INIT("timer_xmts", "calls to transmit: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, timerstats_vdc, FALSE, fp);
@@ -3823,16 +3823,16 @@ authinfo(
)
{
static vdc authinfo_vdc[] = {
- { "authreset", "time since reset:", NTP_STR },
- { "authkeys", "stored keys: ", NTP_STR },
- { "authfreek", "free keys: ", NTP_STR },
- { "authklookups", "key lookups: ", NTP_STR },
- { "authknotfound", "keys not found: ", NTP_STR },
- { "authkuncached", "uncached keys: ", NTP_STR },
- { "authkexpired", "expired keys: ", NTP_STR },
- { "authencrypts", "encryptions: ", NTP_STR },
- { "authdecrypts", "decryptions: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("authreset", "time since reset:", NTP_STR),
+ VDC_INIT("authkeys", "stored keys: ", NTP_STR),
+ VDC_INIT("authfreek", "free keys: ", NTP_STR),
+ VDC_INIT("authklookups", "key lookups: ", NTP_STR),
+ VDC_INIT("authknotfound", "keys not found: ", NTP_STR),
+ VDC_INIT("authkuncached", "uncached keys: ", NTP_STR),
+ VDC_INIT("authkexpired", "expired keys: ", NTP_STR),
+ VDC_INIT("authencrypts", "encryptions: ", NTP_STR),
+ VDC_INIT("authdecrypts", "decryptions: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
collect_display_vdc(0, authinfo_vdc, FALSE, fp);
@@ -3849,20 +3849,20 @@ pstats(
)
{
static vdc pstats_vdc[] = {
- { "src", "remote host: ", NTP_ADD },
- { "dst", "local address: ", NTP_ADD },
- { "timerec", "time last received: ", NTP_STR },
- { "timer", "time until next send:", NTP_STR },
- { "timereach", "reachability change: ", NTP_STR },
- { "sent", "packets sent: ", NTP_STR },
- { "received", "packets received: ", NTP_STR },
- { "badauth", "bad authentication: ", NTP_STR },
- { "bogusorg", "bogus origin: ", NTP_STR },
- { "oldpkt", "duplicate: ", NTP_STR },
- { "seldisp", "bad dispersion: ", NTP_STR },
- { "selbroken", "bad reference time: ", NTP_STR },
- { "candidate", "candidate order: ", NTP_STR },
- { NULL, NULL, 0 }
+ VDC_INIT("src", "remote host: ", NTP_ADD),
+ VDC_INIT("dst", "local address: ", NTP_ADD),
+ VDC_INIT("timerec", "time last received: ", NTP_STR),
+ VDC_INIT("timer", "time until next send:", NTP_STR),
+ VDC_INIT("timereach", "reachability change: ", NTP_STR),
+ VDC_INIT("sent", "packets sent: ", NTP_STR),
+ VDC_INIT("received", "packets received: ", NTP_STR),
+ VDC_INIT("badauth", "bad authentication: ", NTP_STR),
+ VDC_INIT("bogusorg", "bogus origin: ", NTP_STR),
+ VDC_INIT("oldpkt", "duplicate: ", NTP_STR),
+ VDC_INIT("seldisp", "bad dispersion: ", NTP_STR),
+ VDC_INIT("selbroken", "bad reference time: ", NTP_STR),
+ VDC_INIT("candidate", "candidate order: ", NTP_STR),
+ VDC_INIT(NULL, NULL, 0)
};
associd_t associd;
@@ -3872,4 +3872,3 @@ pstats(
collect_display_vdc(associd, pstats_vdc, TRUE, fp);
}
-
diff --git a/ntpq/ntpq.1ntpqman b/ntpq/ntpq.1ntpqman
index 49cc5aa66335..a92f61ec3d7f 100644
--- a/ntpq/ntpq.1ntpqman
+++ b/ntpq/ntpq.1ntpqman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpq 1ntpqman "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpq 1ntpqman "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-XYaGog/ag-9Yayng)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-oaaWVr/ag-CaaOUr)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:13 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:13 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpq-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -1397,9 +1397,9 @@ libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpq/ntpq.1ntpqmdoc b/ntpq/ntpq.1ntpqmdoc
index 3c93d140553f..c55a5329c788 100644
--- a/ntpq/ntpq.1ntpqmdoc
+++ b/ntpq/ntpq.1ntpqmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPQ 1ntpqmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:19 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:19 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpq-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -943,9 +943,9 @@ libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpq/ntpq.c b/ntpq/ntpq.c
index 2ffdfc7be0ec..90cae41b1ca3 100644
--- a/ntpq/ntpq.c
+++ b/ntpq/ntpq.c
@@ -201,8 +201,10 @@ static void raw (struct parse *, FILE *);
static void cooked (struct parse *, FILE *);
static void authenticate (struct parse *, FILE *);
static void ntpversion (struct parse *, FILE *);
-static void warning (const char *, const char *, const char *);
-static void error (const char *, const char *, const char *);
+static void warning (const char *, ...)
+ __attribute__((__format__(__printf__, 1, 2)));
+static void error (const char *, ...)
+ __attribute__((__format__(__printf__, 1, 2)));
static u_long getkeyid (const char *);
static void atoascii (const char *, size_t, char *, size_t);
static void cookedprint (int, int, const char *, int, int, FILE *);
@@ -315,7 +317,7 @@ struct sock_timeval tvsout = { DEFSTIMEOUT, 0 };/* secondary time out */
l_fp delay_time; /* delay time */
char currenthost[LENHOSTNAME]; /* current host name */
int currenthostisnum; /* is prior text from IP? */
-struct sockaddr_in hostaddr = { 0 }; /* host address */
+struct sockaddr_in hostaddr; /* host address */
int showhostnames = 1; /* show host names by default */
int wideremote = 0; /* show wide remote names? */
@@ -678,7 +680,7 @@ openhost(
sockfd = socket(ai->ai_family, ai->ai_socktype,
ai->ai_protocol);
if (sockfd == INVALID_SOCKET) {
- error("socket", "", "");
+ error("socket");
freeaddrinfo(ai);
return 0;
}
@@ -689,7 +691,7 @@ openhost(
{ int rbufsize = DATASIZE + 2048; /* 2K for slop */
if (setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF,
&rbufsize, sizeof(int)) == -1)
- error("setsockopt", "", "");
+ error("setsockopt");
}
# endif
#endif
@@ -703,7 +705,7 @@ openhost(
ai->ai_addrlen) == -1)
#endif /* SYS_VXWORKS */
{
- error("connect", "", "");
+ error("connect");
freeaddrinfo(ai);
return 0;
}
@@ -761,10 +763,10 @@ sendpkt(
)
{
if (debug >= 3)
- printf("Sending %lu octets\n", (u_long)xdatalen);
+ printf("Sending %zu octets\n", xdatalen);
if (send(sockfd, xdata, (size_t)xdatalen, 0) == -1) {
- warning("write to %s failed", currenthost, "");
+ warning("write to %s failed", currenthost);
return -1;
}
@@ -835,7 +837,7 @@ getresponse(
n = select(sockfd + 1, &fds, NULL, NULL, &tvo);
if (n == -1) {
- warning("select fails", "", "");
+ warning("select fails");
return -1;
}
if (n == 0) {
@@ -874,7 +876,7 @@ getresponse(
n = recv(sockfd, (char *)&rpkt, sizeof(rpkt), 0);
if (n == -1) {
- warning("read", "", "");
+ warning("read");
return -1;
}
@@ -886,7 +888,7 @@ getresponse(
/*
* Check for format errors. Bug proofing.
*/
- if (n < CTL_HEADER_LEN) {
+ if (n < (int)CTL_HEADER_LEN) {
if (debug)
printf("Short (%d byte) packet received\n", n);
continue;
@@ -994,7 +996,7 @@ getresponse(
shouldbesize = (shouldbesize + 7) & ~7;
maclen = n - shouldbesize;
- if (maclen >= MIN_MAC_LEN) {
+ if (maclen >= (int)MIN_MAC_LEN) {
printf(
"Packet shows signs of authentication (total %d, data %d, mac %d)\n",
n, shouldbesize, maclen);
@@ -1226,9 +1228,9 @@ sendrequest(
return 1;
} else if ((size_t)maclen != (info_auth_hashlen + sizeof(keyid_t))) {
fprintf(stderr,
- "%d octet MAC, %lu expected with %lu octet digest\n",
- maclen, (u_long)(info_auth_hashlen + sizeof(keyid_t)),
- (u_long)info_auth_hashlen);
+ "%d octet MAC, %zu expected with %zu octet digest\n",
+ maclen, (info_auth_hashlen + sizeof(keyid_t)),
+ info_auth_hashlen);
return 1;
}
@@ -2620,37 +2622,46 @@ ntpversion(
}
+static void __attribute__((__format__(__printf__, 1, 0)))
+vwarning(const char *fmt, va_list ap)
+{
+ int serrno = errno;
+ (void) fprintf(stderr, "%s: ", progname);
+ vfprintf(stderr, fmt, ap);
+ (void) fprintf(stderr, ": %s", strerror(serrno));
+}
+
/*
* warning - print a warning message
*/
-static void
+static void __attribute__((__format__(__printf__, 1, 2)))
warning(
const char *fmt,
- const char *st1,
- const char *st2
+ ...
)
{
- (void) fprintf(stderr, "%s: ", progname);
- (void) fprintf(stderr, fmt, st1, st2);
- (void) fprintf(stderr, ": ");
- perror("");
+ va_list ap;
+ va_start(ap, fmt);
+ vwarning(fmt, ap);
+ va_end(ap);
}
/*
* error - print a message and exit
*/
-static void
+static void __attribute__((__format__(__printf__, 1, 2)))
error(
const char *fmt,
- const char *st1,
- const char *st2
+ ...
)
{
- warning(fmt, st1, st2);
+ va_list ap;
+ va_start(ap, fmt);
+ vwarning(fmt, ap);
+ va_end(ap);
exit(1);
}
-
/*
* getkeyid - prompt the user for a keyid to use
*/
@@ -2900,7 +2911,7 @@ nextvar(
srclen = strcspn(cp, ",=\r\n");
srclen = min(srclen, (size_t)(cpend - cp));
len = srclen;
- while (len > 0 && isspace(cp[len - 1]))
+ while (len > 0 && isspace((unsigned char)cp[len - 1]))
len--;
if (len > 0)
memcpy(name, cp, len);
@@ -2924,7 +2935,7 @@ nextvar(
* So far, so good. Copy out the value
*/
cp++; /* past '=' */
- while (cp < cpend && (isspace(*cp) && *cp != '\r' && *cp != '\n'))
+ while (cp < cpend && (isspace((unsigned char)*cp) && *cp != '\r' && *cp != '\n'))
cp++;
np = cp;
if ('"' == *np) {
@@ -2945,7 +2956,7 @@ nextvar(
/*
* Trim off any trailing whitespace
*/
- while (len > 0 && isspace(value[len - 1]))
+ while (len > 0 && isspace((unsigned char)value[len - 1]))
len--;
value[len] = '\0';
@@ -3028,7 +3039,7 @@ rawprint(
*/
if (cp == (cpend - 1) || *(cp + 1) != '\n')
makeascii(1, cp, fp);
- } else if (isspace(*cp) || isprint(*cp))
+ } else if (isspace((unsigned char)*cp) || isprint((unsigned char)*cp))
putc(*cp, fp);
else
makeascii(1, cp, fp);
@@ -3176,7 +3187,7 @@ tstflags(
*cp++ = ' ';
cb--;
}
- for (i = 0; i < COUNTOF(tstflagnames); i++) {
+ for (i = 0; i < (int)COUNTOF(tstflagnames); i++) {
if (val & 0x1) {
snprintf(cp, cb, "%s%s", sep,
tstflagnames[i]);
diff --git a/ntpq/ntpq.h b/ntpq/ntpq.h
index ec2bcb98d3bb..2575b885c179 100644
--- a/ntpq/ntpq.h
+++ b/ntpq/ntpq.h
@@ -79,7 +79,7 @@ typedef union {
struct parse {
const char *keyword;
arg_v argval[MAXARGS];
- int nargs;
+ size_t nargs;
};
/*
diff --git a/ntpq/ntpq.html b/ntpq/ntpq.html
index e5119d5b3625..757dd2baa338 100644
--- a/ntpq/ntpq.html
+++ b/ntpq/ntpq.html
@@ -44,7 +44,7 @@ monitor the operational status
and determine the performance of
<code>ntpd</code>, the NTP daemon.
- <p>This document applies to version 4.2.8 of <code>ntpq</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntpq</code>.
<ul class="menu">
<li><a accesskey="1" href="#ntpq-Description">ntpq Description</a>
@@ -759,7 +759,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntpq - standard NTP query program - Ver. 4.2.7p486-RC
+<pre class="example">ntpq - standard NTP query program - Ver. 4.2.8p1-RC2
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 DNS name resolution
diff --git a/ntpq/ntpq.man.in b/ntpq/ntpq.man.in
index 548ebf7f5dd9..f6d28cc95241 100644
--- a/ntpq/ntpq.man.in
+++ b/ntpq/ntpq.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpq @NTPQ_MS@ "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpq @NTPQ_MS@ "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-XYaGog/ag-9Yayng)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-oaaWVr/ag-CaaOUr)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:13 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:13 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpq-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -1397,9 +1397,9 @@ libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpq/ntpq.mdoc.in b/ntpq/ntpq.mdoc.in
index 34bbfdfbc169..23fe10242d78 100644
--- a/ntpq/ntpq.mdoc.in
+++ b/ntpq/ntpq.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPQ @NTPQ_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpq-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:19 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:19 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpq-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -943,9 +943,9 @@ libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpsnmpd/Makefile.in b/ntpsnmpd/Makefile.in
index 6733b3cb19cb..2532f0782468 100644
--- a/ntpsnmpd/Makefile.in
+++ b/ntpsnmpd/Makefile.in
@@ -182,6 +182,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -216,7 +217,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/ntpsnmpd/invoke-ntpsnmpd.texi b/ntpsnmpd/invoke-ntpsnmpd.texi
index 6631f01a80d6..513d70cfc965 100644
--- a/ntpsnmpd/invoke-ntpsnmpd.texi
+++ b/ntpsnmpd/invoke-ntpsnmpd.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpsnmpd.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:50:32 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:43:32 AM by AutoGen 5.18.5pre4
# From the definitions ntpsnmpd-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -47,7 +47,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8
+ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p1
Usage: ntpsnmpd [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
Flg Arg Option-Name Description
-n no nofork Do not fork
diff --git a/ntpsnmpd/netsnmp_daemonize.c b/ntpsnmpd/netsnmp_daemonize.c
index 969caa0db77a..4311bac0903b 100644
--- a/ntpsnmpd/netsnmp_daemonize.c
+++ b/ntpsnmpd/netsnmp_daemonize.c
@@ -40,6 +40,7 @@ SOFTWARE.
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
+#undef PACKAGE_URL
#undef PACKAGE_VERSION
#include <config.h>
diff --git a/ntpsnmpd/ntp_snmp.h b/ntpsnmpd/ntp_snmp.h
index 1e0499d05a8d..b6057582c30c 100644
--- a/ntpsnmpd/ntp_snmp.h
+++ b/ntpsnmpd/ntp_snmp.h
@@ -26,6 +26,9 @@
#ifdef PACKAGE_TARNAME
# undef PACKAGE_TARNAME
#endif
+#ifdef PACKAGE_URL
+# undef PACKAGE_URL
+#endif
#ifdef PACKAGE_VERSION
# undef PACKAGE_VERSION
#endif
diff --git a/ntpsnmpd/ntpsnmpd-opts.c b/ntpsnmpd/ntpsnmpd-opts.c
index 4877ffe4ccf1..0f8622e7aa5f 100644
--- a/ntpsnmpd/ntpsnmpd-opts.c
+++ b/ntpsnmpd/ntpsnmpd-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.c)
*
- * It has been AutoGen-ed December 19, 2014 at 07:50:22 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:43:22 AM by AutoGen 5.18.5pre4
* From the definitions ntpsnmpd-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpsnmpd program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -50,7 +50,7 @@ extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntpsnmpd_opt_strs+0)
-#define zLicenseDescrip (ntpsnmpd_opt_strs+314)
+#define zLicenseDescrip (ntpsnmpd_opt_strs+344)
#ifndef NULL
@@ -60,64 +60,65 @@ extern FILE * option_usage_fp;
/**
* static const strings for ntpsnmpd options
*/
-static char const ntpsnmpd_opt_strs[1548] =
-/* 0 */ "ntpsnmpd 4.2.8\n"
- "Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n"
+static char const ntpsnmpd_opt_strs[1610] =
+/* 0 */ "ntpsnmpd 4.2.8p1\n"
+ "Copyright (C) 1992-2015 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"
-/* 314 */ "Permission to use, copy, modify, and distribute this software and its\n"
+/* 344 */ "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 makes no\n"
- "representations about the suitability this software for any purpose. It is\n"
- "provided \"as is\" without express or implied warranty.\n\0"
-/* 954 */ "Do not fork\0"
-/* 966 */ "NOFORK\0"
-/* 973 */ "nofork\0"
-/* 980 */ "Log to syslog()\0"
-/* 996 */ "SYSLOG\0"
-/* 1003 */ "syslog\0"
-/* 1010 */ "The socket address ntpsnmpd uses to connect to net-snmpd\0"
-/* 1067 */ "AGENTXSOCKET\0"
-/* 1080 */ "agentxsocket\0"
-/* 1093 */ "unix:/var/agentx/master\0"
-/* 1117 */ "display extended usage information and exit\0"
-/* 1161 */ "help\0"
-/* 1166 */ "extended usage information passed thru pager\0"
-/* 1211 */ "more-help\0"
-/* 1221 */ "output version information and exit\0"
-/* 1257 */ "version\0"
-/* 1265 */ "save the option state to a config file\0"
-/* 1304 */ "save-opts\0"
-/* 1314 */ "load options from a config file\0"
-/* 1346 */ "LOAD_OPTS\0"
-/* 1356 */ "no-load-opts\0"
-/* 1369 */ "no\0"
-/* 1372 */ "NTPSNMPD\0"
-/* 1381 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8\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"
+/* 1012 */ "Do not fork\0"
+/* 1024 */ "NOFORK\0"
+/* 1031 */ "nofork\0"
+/* 1038 */ "Log to syslog()\0"
+/* 1054 */ "SYSLOG\0"
+/* 1061 */ "syslog\0"
+/* 1068 */ "The socket address ntpsnmpd uses to connect to net-snmpd\0"
+/* 1125 */ "AGENTXSOCKET\0"
+/* 1138 */ "agentxsocket\0"
+/* 1151 */ "unix:/var/agentx/master\0"
+/* 1175 */ "display extended usage information and exit\0"
+/* 1219 */ "help\0"
+/* 1224 */ "extended usage information passed thru pager\0"
+/* 1269 */ "more-help\0"
+/* 1279 */ "output version information and exit\0"
+/* 1315 */ "version\0"
+/* 1323 */ "save the option state to a config file\0"
+/* 1362 */ "save-opts\0"
+/* 1372 */ "load options from a config file\0"
+/* 1404 */ "LOAD_OPTS\0"
+/* 1414 */ "no-load-opts\0"
+/* 1427 */ "no\0"
+/* 1430 */ "NTPSNMPD\0"
+/* 1439 */ "ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p1\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/* 1482 */ "$HOME\0"
-/* 1488 */ ".\0"
-/* 1490 */ ".ntprc\0"
-/* 1497 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 1531 */ "\n\0"
-/* 1533 */ "ntpsnmpd 4.2.8";
+/* 1542 */ "$HOME\0"
+/* 1548 */ ".\0"
+/* 1550 */ ".ntprc\0"
+/* 1557 */ "http://bugs.ntp.org, bugs@ntp.org\0"
+/* 1591 */ "\n\0"
+/* 1593 */ "ntpsnmpd 4.2.8p1";
/**
* nofork option description:
*/
/** Descriptive text for the nofork option */
-#define NOFORK_DESC (ntpsnmpd_opt_strs+954)
+#define NOFORK_DESC (ntpsnmpd_opt_strs+1012)
/** Upper-cased name for the nofork option */
-#define NOFORK_NAME (ntpsnmpd_opt_strs+966)
+#define NOFORK_NAME (ntpsnmpd_opt_strs+1024)
/** Name string for the nofork option */
-#define NOFORK_name (ntpsnmpd_opt_strs+973)
+#define NOFORK_name (ntpsnmpd_opt_strs+1031)
/** Compiled in flag settings for the nofork option */
#define NOFORK_FLAGS (OPTST_DISABLED)
@@ -125,11 +126,11 @@ static char const ntpsnmpd_opt_strs[1548] =
* syslog option description:
*/
/** Descriptive text for the syslog option */
-#define SYSLOG_DESC (ntpsnmpd_opt_strs+980)
+#define SYSLOG_DESC (ntpsnmpd_opt_strs+1038)
/** Upper-cased name for the syslog option */
-#define SYSLOG_NAME (ntpsnmpd_opt_strs+996)
+#define SYSLOG_NAME (ntpsnmpd_opt_strs+1054)
/** Name string for the syslog option */
-#define SYSLOG_name (ntpsnmpd_opt_strs+1003)
+#define SYSLOG_name (ntpsnmpd_opt_strs+1061)
/** Compiled in flag settings for the syslog option */
#define SYSLOG_FLAGS (OPTST_DISABLED)
@@ -137,13 +138,13 @@ static char const ntpsnmpd_opt_strs[1548] =
* agentXSocket option description:
*/
/** Descriptive text for the agentXSocket option */
-#define AGENTXSOCKET_DESC (ntpsnmpd_opt_strs+1010)
+#define AGENTXSOCKET_DESC (ntpsnmpd_opt_strs+1068)
/** Upper-cased name for the agentXSocket option */
-#define AGENTXSOCKET_NAME (ntpsnmpd_opt_strs+1067)
+#define AGENTXSOCKET_NAME (ntpsnmpd_opt_strs+1125)
/** Name string for the agentXSocket option */
-#define AGENTXSOCKET_name (ntpsnmpd_opt_strs+1080)
+#define AGENTXSOCKET_name (ntpsnmpd_opt_strs+1138)
/** The compiled in default value for the agentXSocket option argument */
-#define AGENTXSOCKET_DFT_ARG (ntpsnmpd_opt_strs+1093)
+#define AGENTXSOCKET_DFT_ARG (ntpsnmpd_opt_strs+1151)
/** Compiled in flag settings for the agentXSocket option */
#define AGENTXSOCKET_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -151,11 +152,11 @@ static char const ntpsnmpd_opt_strs[1548] =
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (ntpsnmpd_opt_strs+1117)
-#define HELP_name (ntpsnmpd_opt_strs+1161)
+#define HELP_DESC (ntpsnmpd_opt_strs+1175)
+#define HELP_name (ntpsnmpd_opt_strs+1219)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (ntpsnmpd_opt_strs+1166)
-#define MORE_HELP_name (ntpsnmpd_opt_strs+1211)
+#define MORE_HELP_DESC (ntpsnmpd_opt_strs+1224)
+#define MORE_HELP_name (ntpsnmpd_opt_strs+1269)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -168,14 +169,14 @@ static char const ntpsnmpd_opt_strs[1548] =
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (ntpsnmpd_opt_strs+1221)
-#define VER_name (ntpsnmpd_opt_strs+1257)
-#define SAVE_OPTS_DESC (ntpsnmpd_opt_strs+1265)
-#define SAVE_OPTS_name (ntpsnmpd_opt_strs+1304)
-#define LOAD_OPTS_DESC (ntpsnmpd_opt_strs+1314)
-#define LOAD_OPTS_NAME (ntpsnmpd_opt_strs+1346)
-#define NO_LOAD_OPTS_name (ntpsnmpd_opt_strs+1356)
-#define LOAD_OPTS_pfx (ntpsnmpd_opt_strs+1369)
+#define VER_DESC (ntpsnmpd_opt_strs+1279)
+#define VER_name (ntpsnmpd_opt_strs+1315)
+#define SAVE_OPTS_DESC (ntpsnmpd_opt_strs+1323)
+#define SAVE_OPTS_name (ntpsnmpd_opt_strs+1362)
+#define LOAD_OPTS_DESC (ntpsnmpd_opt_strs+1372)
+#define LOAD_OPTS_NAME (ntpsnmpd_opt_strs+1404)
+#define NO_LOAD_OPTS_name (ntpsnmpd_opt_strs+1414)
+#define LOAD_OPTS_pfx (ntpsnmpd_opt_strs+1427)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
@@ -300,24 +301,24 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntpsnmpd. */
-#define zPROGNAME (ntpsnmpd_opt_strs+1372)
+#define zPROGNAME (ntpsnmpd_opt_strs+1430)
/** Reference to the title line for ntpsnmpd usage. */
-#define zUsageTitle (ntpsnmpd_opt_strs+1381)
+#define zUsageTitle (ntpsnmpd_opt_strs+1439)
/** ntpsnmpd configuration file name. */
-#define zRcName (ntpsnmpd_opt_strs+1490)
+#define zRcName (ntpsnmpd_opt_strs+1550)
/** Directories to search for ntpsnmpd config files. */
static char const * const apzHomeList[3] = {
- ntpsnmpd_opt_strs+1482,
- ntpsnmpd_opt_strs+1488,
+ ntpsnmpd_opt_strs+1542,
+ ntpsnmpd_opt_strs+1548,
NULL };
/** The ntpsnmpd program bug email address. */
-#define zBugsAddr (ntpsnmpd_opt_strs+1497)
+#define zBugsAddr (ntpsnmpd_opt_strs+1557)
/** Clarification/explanation of what ntpsnmpd does. */
-#define zExplain (ntpsnmpd_opt_strs+1531)
+#define zExplain (ntpsnmpd_opt_strs+1591)
/** Extra detail explaining what ntpsnmpd does. */
#define zDetail (NULL)
/** The full version string for ntpsnmpd. */
-#define zFullVersion (ntpsnmpd_opt_strs+1533)
+#define zFullVersion (ntpsnmpd_opt_strs+1593)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -553,8 +554,8 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntpsnmpdOptions.pzCopyright */
- puts(_("ntpsnmpd 4.2.8\n\
-Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n\
+ puts(_("ntpsnmpd 4.2.8p1\n\
+Copyright (C) 1992-2015 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"));
@@ -568,9 +569,10 @@ 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 makes no\n\
-representations about the suitability this software for any purpose. It is\n\
-provided \"as is\" without express or implied warranty.\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"));
@@ -597,14 +599,14 @@ provided \"as is\" without express or implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntpsnmpdOptions.pzUsageTitle */
- puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8\n\
+ puts(_("ntpsnmpd - NTP SNMP MIB agent - Ver. 4.2.8p1\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n"));
/* referenced via ntpsnmpdOptions.pzExplain */
puts(_("\n"));
/* referenced via ntpsnmpdOptions.pzFullVersion */
- puts(_("ntpsnmpd 4.2.8"));
+ puts(_("ntpsnmpd 4.2.8p1"));
/* referenced via ntpsnmpdOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/ntpsnmpd/ntpsnmpd-opts.h b/ntpsnmpd/ntpsnmpd-opts.h
index 67742a23dc77..9b9204133ecf 100644
--- a/ntpsnmpd/ntpsnmpd-opts.h
+++ b/ntpsnmpd/ntpsnmpd-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.h)
*
- * It has been AutoGen-ed December 19, 2014 at 07:50:21 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:43:21 AM by AutoGen 5.18.5pre4
* From the definitions ntpsnmpd-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntpsnmpd program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -76,9 +76,9 @@ typedef enum {
/** count of all options for ntpsnmpd */
#define OPTION_CT 8
/** ntpsnmpd version */
-#define NTPSNMPD_VERSION "4.2.8"
+#define NTPSNMPD_VERSION "4.2.8p1"
/** Full ntpsnmpd version text */
-#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8"
+#define NTPSNMPD_FULL_VERSION "ntpsnmpd 4.2.8p1"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/ntpsnmpd/ntpsnmpd.1ntpsnmpdman b/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
index c1880b7ec40b..1c44243be1a3 100644
--- a/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
+++ b/ntpsnmpd/ntpsnmpd.1ntpsnmpdman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsnmpd 1ntpsnmpdman "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpsnmpd 1ntpsnmpdman "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FOaywh/ag-ROaqvh)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-T1aO3s/ag-51aG2s)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:29 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:29 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -138,7 +138,7 @@ it to autogen-users@lists.sourceforge.net. Thank you.
.NOP "Heiko Gerstung"
.br
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc b/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
index ce76dc14f5d0..9374142cb83e 100644
--- a/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
+++ b/ntpsnmpd/ntpsnmpd.1ntpsnmpdmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPSNMPD 1ntpsnmpdmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:34 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:34 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -110,7 +110,7 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.Sh AUTHORS
.An "Heiko Gerstung"
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpsnmpd/ntpsnmpd.html b/ntpsnmpd/ntpsnmpd.html
index 974b536e5d25..983b6dee87aa 100644
--- a/ntpsnmpd/ntpsnmpd.html
+++ b/ntpsnmpd/ntpsnmpd.html
@@ -42,7 +42,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<p>The <code>ntpsnmpd</code> utility program is used to monitor NTP daemon <code>ntpd</code>
operations and determine performance. It uses the standard NTP mode 6 control
- <p>This document applies to version 4.2.8 of <code>ntpsnmpd</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntpsnmpd</code>.
<ul class="menu">
<li><a accesskey="1" href="#ntpsnmpd-Description">ntpsnmpd Description</a>: Description
diff --git a/ntpsnmpd/ntpsnmpd.man.in b/ntpsnmpd/ntpsnmpd.man.in
index da48b668e110..f0de336492b3 100644
--- a/ntpsnmpd/ntpsnmpd.man.in
+++ b/ntpsnmpd/ntpsnmpd.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsnmpd @NTPSNMPD_MS@ "19 Dec 2014" "4.2.8" "User Commands"
+.TH ntpsnmpd @NTPSNMPD_MS@ "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-FOaywh/ag-ROaqvh)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-T1aO3s/ag-51aG2s)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:29 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:29 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -138,7 +138,7 @@ it to autogen-users@lists.sourceforge.net. Thank you.
.NOP "Heiko Gerstung"
.br
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/ntpsnmpd/ntpsnmpd.mdoc.in b/ntpsnmpd/ntpsnmpd.mdoc.in
index d85df74e59c6..d8d183d63657 100644
--- a/ntpsnmpd/ntpsnmpd.mdoc.in
+++ b/ntpsnmpd/ntpsnmpd.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPSNMPD @NTPSNMPD_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsnmpd-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:34 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:34 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsnmpd-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -110,7 +110,7 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.Sh AUTHORS
.An "Heiko Gerstung"
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/packageinfo.sh b/packageinfo.sh
index 684227aa7295..f3b727e61a51 100644
--- a/packageinfo.sh
+++ b/packageinfo.sh
@@ -83,7 +83,7 @@ CLTAG=NTP_4_2_0
# - Numeric values increment
# - empty 'increments' to 1
# - NEW 'increments' to empty
-point=
+point=1
### betapoint is normally modified by script.
# ntp-stable Beta number (betapoint)
diff --git a/parseutil/Makefile.in b/parseutil/Makefile.in
index 1d9d9cbe5df9..e741a93e1a02 100644
--- a/parseutil/Makefile.in
+++ b/parseutil/Makefile.in
@@ -148,6 +148,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -182,7 +183,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/ports/winnt/include/arpa/inet.h b/ports/winnt/include/arpa/inet.h
new file mode 100644
index 000000000000..5e1599737300
--- /dev/null
+++ b/ports/winnt/include/arpa/inet.h
@@ -0,0 +1,4 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
diff --git a/ports/winnt/include/clockstuff.h b/ports/winnt/include/clockstuff.h
new file mode 100644
index 000000000000..df8569935094
--- /dev/null
+++ b/ports/winnt/include/clockstuff.h
@@ -0,0 +1,44 @@
+#ifndef _CLOCKSTUFF_H
+#define _CLOCKSTUFF_H
+
+#include <time.h>
+#include <sys\timeb.h>
+
+#include "ntp_fp.h"
+#include "ntp_syslog.h"
+
+
+void init_winnt_time(void);
+void reset_winnt_time(void);
+void lock_thread_to_processor(HANDLE);
+
+/* 100ns intervals between 1/1/1601 and 1/1/1970 as reported by
+ * SystemTimeToFileTime()
+ */
+
+#define FILETIME_1970 0x019db1ded53e8000
+#define HECTONANOSECONDS 10000000
+
+/*
+ * Multimedia Timer
+ */
+
+void set_mm_timer(int);
+
+enum {
+ MM_TIMER_LORES,
+ MM_TIMER_HIRES
+};
+
+/*
+ * get_sys_time_as_filetime is a function pointer to
+ * either GetSystemTimeAsFileTime provided by Windows
+ * or ntpd's interpolating replacement.
+ */
+typedef void (WINAPI *PGSTAFT)(LPFILETIME pftResult);
+extern PGSTAFT get_sys_time_as_filetime;
+extern PGSTAFT pGetSystemTimePreciseAsFileTime;
+
+void lock_thread_to_processor(HANDLE);
+
+#endif
diff --git a/ports/winnt/include/config.h b/ports/winnt/include/config.h
new file mode 100644
index 000000000000..6de8857c1fed
--- /dev/null
+++ b/ports/winnt/include/config.h
@@ -0,0 +1,560 @@
+/*
+ * ports/winnt/include/config.h - static Windows config.h
+ *
+ * On most systems config.h is generated by the configure script.
+ * For the Windows port, it's hand-maintained. Compilers earlier
+ * than Visual C++ 2005 are no longer supported, enabling
+ * portable use of "long long" and "%lld".
+ */
+
+#ifndef CONFIG_H
+#define CONFIG_H
+
+/*
+ * Known predifined MS compiler version codes:
+ * 1800: MSVC++ 12.0 (Visual Studio 2013)
+ * 1700: MSVC++ 11.0 (Visual Studio 2012)
+ * 1600: MSVC++ 10.0 (Visual Studio 2010)
+ * 1500: MSVC++ 9.0 (Visual Studio 2008)
+ * 1400: MSVC++ 8.0 (Visual Studio 2005)
+ * 1310: MSVC++ 7.1 (Visual Studio 2003)
+ * 1300: MSVC++ 7.0
+ * 1200: MSVC++ 6.0 (Visual C++ 6)
+ * 1100: MSVC++ 5.0
+ */
+
+#if defined(_MSC_VER) && _MSC_VER < 1400
+#error Minimum supported Microsoft compiler is Visual C++ 2005.
+#endif
+
+/*
+ * We want structures and prototypes added after Windows NT 4.0 exposed
+ * by Windows header files, so we define _WIN32_WINNT to target Windows
+ * XP (version 5.1). By default, _WIN32_WINNT also controls the minimum
+ * required Windows version to launch the .exe. As we want a single
+ * binary to work on all supported Windows versions, we runtime link
+ * newer functions, and use the linker /version:0x0400 option to
+ * override the .EXE header minimum Windows version.
+ *
+ * When using the VC++ 2008 and later compilers, the resulting binaries
+ * will not work on versions earlier than Windows XP, due to runtime
+ * library dependencies. That is, Visual C++ 2005 is the last version
+ * capable of producing binaries usable with Windows NT 4 and 2000.
+ */
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0501
+#endif
+
+#define __attribute__(x) /* empty */
+#define _CRT_SECURE_NO_DEPRECATE 1
+
+/*
+ * ANSI C compliance enabled
+ */
+#define __STDC__ 1
+
+/*
+ * Enable the debug build of MS C runtime to dump leaks
+ * at exit time (currently only if run under a debugger).
+ */
+#if defined(_MSC_VER) && defined(_DEBUG)
+# define _CRTDBG_MAP_ALLOC
+# include <stdlib.h>
+# include <malloc.h>
+# include <crtdbg.h>
+/* # define MALLOC_LINT */ /* defers free() */
+# define EREALLOC_IMPL(ptr, newsz, filenm, loc) \
+ _realloc_dbg(ptr, newsz, _NORMAL_BLOCK, filenm, loc)
+#endif
+
+/*
+ * We need to include stdio.h first before we #define snprintf
+ * otherwise we can get errors during the build
+ */
+#include <stdio.h>
+
+/* Prevent inclusion of winsock.h in windows.h */
+#ifndef _WINSOCKAPI_
+#define _WINSOCKAPI_
+#endif
+
+#ifndef __RPCASYNC_H__
+#define __RPCASYNC_H__
+#endif
+
+/*
+ * On Unix struct sock_timeval is equivalent to struct timeval.
+ * On Windows built with 64-bit time_t, sock_timeval.tv_sec is a long
+ * as required by Windows' socket() interface timeout argument, while
+ * timeval.tv_sec is time_t for the more common use as a UTC time
+ * within NTP.
+ *
+ * winsock.h unconditionally defines struct timeval with long tv_sec
+ * instead of time_t tv_sec. We redirect its declaration to struct
+ * sock_timeval instead of struct timeval with a #define.
+ */
+#define timeval sock_timeval
+
+/* Include Windows headers */
+#include <windows.h>
+#include <winsock2.h>
+#include <ws2tcpip.h>
+
+#undef timeval /* see sock_timeval #define and comment above */
+
+/*
+ * Some definitions we are using are missing in the headers
+ * shipping with VC6. However, if the SDK is installed then the
+ * SDK's headers may declare the missing types. This is at least
+ * the case in the Oct 2001 SDK. That SDK and all subsequent
+ * versions also define the symbol _W64, so we can use that one
+ * to determine whether some types need to be defined, or not.
+ */
+#ifdef _W64
+/* VC6 can include wspiapi.h only if the SDK is installed */
+#include <wspiapi.h>
+#endif
+
+#undef interface
+#include <process.h>
+#include <time.h> /* time_t for timeval decl */
+#include <io.h>
+#include <isc/strerror.h>
+
+/* ---------------------------------------------------------------------
+ * Above this line are #include lines and the few #define lines
+ * needed before including headers.
+ */
+
+struct timeval {
+ time_t tv_sec;
+ long tv_usec;
+};
+
+/*
+ * ntohl and friends are actual functions on Windows, use our own
+ * macros instead to save the function call overhead. All releases
+ * of Windows are little-endian.
+ */
+#ifdef ntohl
+#error ntohl is already defined in ports/winnt/include/config.h
+#else
+#define ntohl(ul) (((u_long)(ul) & 0xff) << 24 | \
+ ((u_long)(ul) & 0xff00) << 8 | \
+ ((u_long)(ul) & 0xff0000) >> 8 | \
+ ((u_long)(ul) & 0xff000000) >> 24)
+#define htonl(ul) ntohl(ul)
+#define ntohs(us) ((u_short) \
+ (((u_short)(us) & 0xff) << 8 | \
+ ((u_short)(us) & 0xff00) >> 8))
+#define htons(us) ntohs(us)
+#endif
+
+/*
+ * On Unix open() works for tty (serial) devices just fine, while on
+ * Windows refclock serial devices are opened using CreateFile, a lower
+ * level than the CRT-provided descriptors, because the C runtime lacks
+ * tty APIs. For refclocks which wish to use open() as well as or
+ * instead of refclock_open(), tty_open() is equivalent to open() on
+ * Unix and implemented in the Windows port similarly to
+ * refclock_open().
+ */
+extern int tty_open(char *, int, int);
+
+/*
+ * disable use of __declspec(dllexport) by libisc routines
+ */
+#define ISC_STATIC_WIN 1
+
+/*
+ * ntp_rfc2553.h has cruft under #ifdef SYS_WINNT which is
+ * appropriate for older Microsoft IPv6 definitions, such
+ * as in_addr6 being the struct type. We can differentiate
+ * the RFC2553-compliant newer headers because they have
+ * #define in_addr6 in6_addr
+ * for backward compatibility. With the newer headers,
+ * we define ISC_PLATFORM_HAVEIPV6 and disable the cruft.
+ */
+#ifdef in_addr6
+#define WANT_IPV6
+#define ISC_PLATFORM_HAVEIPV6
+#define ISC_PLATFORM_HAVESCOPEID
+#define HAVE_STRUCT_SOCKADDR_STORAGE
+#define ISC_PLATFORM_HAVEIN6PKTINFO
+#endif /* in_addr6 / RFC2553-compliant IPv6 headers */
+
+#define NO_OPTION_NAME_WARNINGS
+
+#if !defined( _W64 )
+ /*
+ * if ULONG_PTR needs to be defined then the build environment
+ * is pure 32 bit Windows. Since ULONG_PTR and DWORD have
+ * the same size in 32 bit Windows we can safely define
+ * a replacement.
+ */
+typedef DWORD ULONG_PTR;
+/* VC6 doesn't know about socklen_t, except if the SDK is installed */
+typedef int socklen_t;
+#endif /* _W64 */
+
+#define ISC_PLATFORM_NEEDIN6ADDRANY
+#define HAVE_SOCKADDR_IN6
+
+/*
+ * The type of the socklen_t defined for getnameinfo() and getaddrinfo()
+ * is int for VS compilers on Windows but the type is already declared
+ */
+#define GETSOCKNAME_SOCKLEN_TYPE socklen_t
+
+/*
+ * Older SDKs do not define SO_EXCLUSIVEADDRUSE in winsock2.h
+ */
+#ifndef SO_EXCLUSIVEADDRUSE
+#define SO_EXCLUSIVEADDRUSE ((int)(~SO_REUSEADDR))
+#endif
+
+#if defined _MSC_VER && _MSC_VER < 1400
+/*
+ * Use 32-bit time definitions for versions prior to VS 2005
+ * VS 2005 defaults to 64-bit time
+ */
+# define SIZEOF_TIME_T 4
+#else
+# define SIZEOF_TIME_T 8
+#endif
+
+
+/*
+ * An attempt to cut down the number of warnings generated during compilation.
+ * All of these should be benign to disable.
+ */
+
+#pragma warning(disable: 4100) /* unreferenced formal parameter */
+#pragma warning(disable: 4127) /* conditional expression is constant */
+#pragma warning(disable: 4996) /* more secure replacement available */
+
+/*
+ * Windows NT Configuration Values
+ */
+#if defined _DEBUG /* Use VC standard macro definitions */
+# define DEBUG 1
+#endif
+
+#define __windows__ 1
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+#define OPEN_BCAST_SOCKET 1 /* for ntp_io.c */
+#define TYPEOF_IP_MULTICAST_LOOP BOOL
+#define SETSOCKOPT_ARG_CAST (const char *)
+#define HAVE_RANDOM
+#define AUTOKEY
+#define SAVECONFIG 1
+
+/*
+ * Multimedia timer enable
+ */
+#define USE_MM_TIMER
+
+/* Enable OpenSSL */
+#define OPENSSL 1
+#define USE_OPENSSL_CRYPTO_RAND 1
+
+/*
+ * Keywords and functions that Microsoft maps
+ * to other names
+ */
+#define inline __inline
+#define stricmp _stricmp
+#define strcasecmp _stricmp
+#define isascii __isascii
+#define finite _finite
+#define random rand
+#define srandom srand
+#define fdopen _fdopen
+#define read _read
+#define open _open
+#ifndef close
+#define close _close
+#endif
+#define write _write
+#define strdup _strdup
+#define alloca _alloca
+#define stat _stat /*struct stat from <sys/stat.h> */
+#define fstat _fstat
+#define unlink _unlink
+/*
+ * punt on fchmod on Windows
+ */
+#define fchmod(x,y) {}
+#define lseek _lseek
+#define pipe _pipe
+#define dup2 _dup2
+/*
+ * scale, unix sleep is seconds, Windows Sleep is msec
+ */
+#define sleep(x) Sleep((unsigned)(x) * 1000)
+#define fileno _fileno
+#define isatty _isatty
+#define mktemp _mktemp
+#define getpid _getpid
+#define timegm _mkgmtime
+#define errno_to_str isc__strerror
+/*
+ * symbol returning the name of the current function
+ */
+#define __func__ __FUNCTION__
+
+typedef int pid_t; /* PID is an int */
+typedef int ssize_t; /* ssize is an int */
+
+/*
+ * Map the stream to the file number
+ */
+#define STDOUT_FILENO _fileno(stdout)
+#define STDERR_FILENO _fileno(stderr)
+
+/*
+ * To minimize Windows-specific changes to the rest of the NTP code,
+ * particularly reference clocks, ntp_stdlib.h will
+ *
+ * #define strerror(e) ntp_strerror(e)
+ *
+ * to deal with our mixture of C runtime (open, write) and Windows
+ * (sockets, serial ports) error codes. This is an ugly hack because
+ * both use the lowest values differently, but particularly for ntpd,
+ * it's not a problem.
+ */
+#define NTP_REDEFINE_STRERROR
+
+#define MCAST /* Enable Multicast Support */
+#define MULTICAST_NONEWSOCKET /* Don't create a new socket for mcast address */
+
+# define REFCLOCK /* from ntpd.mak */
+
+/* #define CLOCK_PARSE */
+#define CLOCK_ACTS
+#define CLOCK_ARBITER
+#define CLOCK_ARCRON_MSF
+#define OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER /* timepps.h */
+#define HAVE_TIMEPPS_H
+#define HAVE_PPSAPI
+#define CLOCK_ATOM
+#define CLOCK_CHU
+#define CLOCK_CHRONOLOG
+#define CLOCK_DUMBCLOCK
+#define CLOCK_HOPF_SERIAL /* device 38, hopf DCF77/GPS serial line receiver */
+#define CLOCK_HOPF_PCI /* device 39, hopf DCF77/GPS PCI-Bus receiver */
+#define CLOCK_JUPITER
+#define CLOCK_LOCAL
+#define CLOCK_NMEA
+#define CLOCK_ONCORE
+#define CLOCK_PALISADE /* from ntpd.mak */
+#define CLOCK_PARSE
+/* parse component drivers */
+#define CLOCK_COMPUTIME
+#define CLOCK_DCF7000
+#define CLOCK_HOPF6021
+#define CLOCK_MEINBERG
+#define CLOCK_RAWDCF
+#define CLOCK_RCC8000
+#define CLOCK_SCHMID
+#define CLOCK_TRIMTAIP
+#define CLOCK_TRIMTSIP
+#define CLOCK_VARITEXT
+#define CLOCK_WHARTON_400A
+/* end parse component drivers */
+/* # define CLOCK_SHM */
+#define CLOCK_SPECTRACOM /* refclock_wwvb.c */
+#define CLOCK_TRIMBLEDC
+#define CLOCK_TRUETIME
+
+#define NTP_LITTLE_ENDIAN /* from libntp.mak */
+#define NTP_POSIX_SOURCE
+
+#define SYSLOG_FILE /* from libntp.mak */
+
+#define HAVE_LONG_LONG_INT 1
+#define HAVE_UNSIGNED_LONG_LONG_INT 1
+#define HAVE_SIZE_T 1
+#define HAVE_PTRDIFF_T 1
+
+# define SIZEOF_SIGNED_CHAR 1
+# define SIZEOF_SHORT 2
+# define SIZEOF_INT 4
+# define SIZEOF_LONG 4
+# define SIZEOF_LONG_LONG 8
+
+/* libntp/snprintf.c doesn't know %I64d */
+#define ISC_PLATFORM_QUADFORMAT "ll"
+
+# define HAVE_ERRNO_H 1
+# define HAVE_FCNTL_H 1
+# define HAVE_LIMITS_H 1
+# define HAVE_STDARG_H 1
+# define HAVE_SYS_RESOURCE_H 1
+# define HAVE_SYS_TIME_H 1
+# define HAVE_TERMIOS_H 1
+
+# define HAVE_ALLOCA 1
+# define HAVE_GETCLOCK 1
+# define HAVE_MEMMOVE 1
+# define HAVE_MKTIME 1
+# define HAVE_SETVBUF 1
+# define HAVE_STRCHR 1 /* for libopts */
+# define HAVE_STRDUP 1
+# define HAVE_TIMEGM 1 /* actually _mkgmtime */
+
+# define HAVE_STRUCT_TIMESPEC
+# define HAVE_IO_COMPLETION_PORT
+# define ISC_PLATFORM_NEEDNTOP
+# define ISC_PLATFORM_NEEDPTON
+
+#define HAVE_BSD_NICE /* emulate BSD setpriority() */
+
+#define HW_WANT_RPL_VSNPRINTF 1
+#define vsnprintf rpl_vsnprintf
+#include <stdarg.h>
+int rpl_vsnprintf(char *, size_t, const char *, va_list);
+#define HW_WANT_RPL_SNPRINTF 1
+#define snprintf rpl_snprintf
+int rpl_snprintf(char *, size_t, const char *, ...);
+#define HAVE_VSNPRINTF 1
+#define HAVE_SNPRINTF 1
+
+typedef char *caddr_t;
+
+#ifdef _WCTYPE_T_DEFINED /* see vc/include/crtdefs.h */
+#define HAVE_WINT_T 1
+#endif
+
+#ifndef _INTPTR_T_DEFINED
+typedef long intptr_t;
+#define _INTPTR_T_DEFINED
+#endif
+#define HAVE_INTPTR_T 1
+
+#ifndef _UINTPTR_T_DEFINED
+typedef unsigned long uintptr_t;
+#define _UINTPTR_T_DEFINED
+#endif
+#define HAVE_UINTPTR_T 1
+
+#if !defined( _W64 )
+ /*
+ * if DWORD_PTR needs to be defined then the build environment
+ * is pure 32 bit Windows. Since DWORD_PTR and DWORD have
+ * the same size in 32 bit Windows we can safely define
+ * a replacement.
+ */
+ typedef DWORD DWORD_PTR;
+#endif
+
+#define NEED_S_CHAR_TYPEDEF
+
+
+/* C99 exact size integer support. */
+#if defined(_MSC_VER) && _MSC_VER<1800
+# define MISSING_INTTYPES_H 1 /* not provided by VS2012 and earlier */
+# define MISSING_STDBOOL_H 1 /* not provided by VS2012 and earlier */
+# define MISSING_C99_STYLE_INIT 1 /* see [Bug 2728] */
+#else
+#if defined(_MSC_VER) && _MSC_VER>=1800
+/* VS2013 and above support C99 types */
+# define HAVE_INT8_T 1
+# define HAVE_UINT8_T 1
+# define HAVE_INT16_T 1
+# define HAVE_UINT16_T 1
+# define HAVE_INT32_T 1
+# define HAVE_UINT32_T 1
+#endif
+#endif
+
+#if !defined (MISSING_STDBOOL_H)
+# define HAVE_STDBOOL_H
+#endif
+#if !defined(MISSING_INTTYPES_H)
+# define HAVE_INTTYPES_H 1
+#elif !defined(MISSING_STDINT_H)
+# define HAVE_STDINT_H 1
+#elif !defined(ADDED_EXACT_SIZE_INTEGERS)
+# define ADDED_EXACT_SIZE_INTEGERS 1
+ typedef __int8 int8_t;
+ typedef unsigned __int8 uint8_t;
+
+ typedef __int16 int16_t;
+ typedef unsigned __int16 uint16_t;
+
+ typedef __int32 int32_t;
+ typedef unsigned __int32 uint32_t;
+
+ typedef __int64 int64_t;
+ typedef unsigned __int64 uint64_t;
+#endif
+
+
+/* Directory separator, usually / or \ */
+#define DIR_SEP '\\'
+
+#define POSIX_SHELL "/bin/sh" /* libopts/makeshell.c */
+
+#define ULONG_CONST(a) a ## UL
+
+#define NOKMEM
+#define RETSIGTYPE void
+
+#ifndef STR_SYSTEM
+#define STR_SYSTEM "Windows"
+#endif
+
+#ifndef STR_PROCESSOR
+
+#define STRINGIZE(arg) #arg
+
+#ifdef _M_IX86
+#ifndef _M_IX86_FP
+#define STR_PROCESSOR "x86"
+#else
+#if !_M_IX86_FP
+#define STR_PROCESSOR "x86"
+#else
+#if _M_IX86_FP > 2
+#define STR_PROCESSOR "x86-FP-" STRINGIZE(_M_IX86_FP)
+#else
+#if _M_IX86_FP == 2
+#define STR_PROCESSOR "x86-SSE2"
+#else
+#define STR_PROCESSOR "x86-SSE"
+#endif /* _M_IX86 == 2 */
+#endif /* _M_IX86_FP > 2 */
+#endif /* !_M_IX86_FP */
+#endif /* !defined(_M_IX86_FP) */
+#endif /* !defined(_M_IX86) */
+
+#ifdef _M_IA64
+#define STR_PROCESSOR "Itanium"
+#endif
+
+#ifdef _M_X64
+#define STR_PROCESSOR "x64"
+#endif
+
+#endif /* !defined(STR_PROCESSOR) */
+
+#undef STRINGIZE
+
+#define SIOCGIFFLAGS SIO_GET_INTERFACE_LIST /* used in ntp_io.c */
+/*
+ * Below this line are includes which must happen after the bulk of
+ * config.h is processed. If you need to add another #include to this
+ * file the preferred location is near the top, above the similar
+ * line of hyphens.
+ * ---------------------------------------------------------------------
+ */
+
+/*
+ * Include standard stat information
+ */
+#include <isc/stat.h>
+
+#endif /* CONFIG_H */
diff --git a/ports/winnt/include/gaa_compat.h b/ports/winnt/include/gaa_compat.h
new file mode 100644
index 000000000000..fdacaf0e84a5
--- /dev/null
+++ b/ports/winnt/include/gaa_compat.h
@@ -0,0 +1,771 @@
+/*
+ * ports/winnt/include/gaa_compat.h
+ *
+ * This header allows systems without a recent-enough SDK to build NTP
+ * which can use GetAdaptersAddresses(), related functions and macros.
+ */
+#ifndef GAA_COMPAT_H
+#define GAA_COMPAT_H
+
+#ifdef _W64
+# include <iphlpapi.h>
+#else /* !_W64 follows */
+
+#pragma warning(push)
+/* warning C4201: nonstandard extension used : nameless struct/union */
+#pragma warning(disable:4201)
+/* warning C4214: nonstandard extension used : bit field types other than int */
+#pragma warning(disable:4214)
+
+/* +++++++++++++++++++++++ from nldef.h */
+typedef enum {
+ //
+ // These values are from iptypes.h.
+ // They need to fit in a 4 bit field.
+ //
+ IpPrefixOriginOther = 0,
+ IpPrefixOriginManual,
+ IpPrefixOriginWellKnown,
+ IpPrefixOriginDhcp,
+ IpPrefixOriginRouterAdvertisement,
+ IpPrefixOriginUnchanged = 1 << 4
+} NL_PREFIX_ORIGIN;
+
+typedef enum {
+ //
+ // These values are from in iptypes.h.
+ // They need to fit in a 4 bit field.
+ //
+ IpSuffixOriginOther = 0,
+ IpSuffixOriginManual,
+ IpSuffixOriginWellKnown,
+ IpSuffixOriginDhcp,
+ IpSuffixOriginLinkLayerAddress,
+ IpSuffixOriginRandom,
+ IpSuffixOriginUnchanged = 1 << 4
+} NL_SUFFIX_ORIGIN;
+
+typedef enum {
+ //
+ // These values are from in iptypes.h.
+ //
+ IpDadStateInvalid = 0,
+ IpDadStateTentative,
+ IpDadStateDuplicate,
+ IpDadStateDeprecated,
+ IpDadStatePreferred,
+} NL_DAD_STATE;
+/* +++++++++++++++++++++++ from nldef.h */
+
+
+/* +++++++++++++++++++++++ from ifdef.h */
+typedef ULONG32 NET_IF_OBJECT_ID, *PNET_IF_OBJECT_ID;
+
+
+typedef enum _NET_IF_ADMIN_STATUS // ifAdminStatus
+{
+ NET_IF_ADMIN_STATUS_UP = 1,
+ NET_IF_ADMIN_STATUS_DOWN = 2,
+ NET_IF_ADMIN_STATUS_TESTING = 3
+} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
+
+typedef enum _NET_IF_OPER_STATUS // ifOperStatus
+{
+ NET_IF_OPER_STATUS_UP = 1,
+ NET_IF_OPER_STATUS_DOWN = 2,
+ NET_IF_OPER_STATUS_TESTING = 3,
+ NET_IF_OPER_STATUS_UNKNOWN = 4,
+ NET_IF_OPER_STATUS_DORMANT = 5,
+ NET_IF_OPER_STATUS_NOT_PRESENT = 6,
+ NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = 7
+} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
+
+//
+// Flags to extend operational status
+//
+#define NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED 0x00000001
+#define NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED 0x00000002
+#define NET_IF_OPER_STATUS_DORMANT_PAUSED 0x00000004
+#define NET_IF_OPER_STATUS_DORMANT_LOW_POWER 0x00000008
+
+typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
+
+//
+// Define compartment ID type:
+//
+#define NET_IF_COMPARTMENT_ID_UNSPECIFIED (NET_IF_COMPARTMENT_ID)0
+#define NET_IF_COMPARTMENT_ID_PRIMARY (NET_IF_COMPARTMENT_ID)1
+
+#define NET_IF_OID_IF_ALIAS 0x00000001 // identifies the ifAlias string for an interface
+#define NET_IF_OID_COMPARTMENT_ID 0x00000002 // identifies the compartment ID for an interface.
+#define NET_IF_OID_NETWORK_GUID 0x00000003 // identifies the NetworkGuid for an interface.
+#define NET_IF_OID_IF_ENTRY 0x00000004 // identifies statistics for an interface.
+
+//
+// Define NetworkGUID type:
+//
+typedef GUID NET_IF_NETWORK_GUID, *PNET_IF_NETWORK_GUID;
+
+//
+// Define macros for an "unspecified" NetworkGUID value to be used in structures
+// that haven't had the NET_LUID field filled in yet.
+//
+#define NET_SET_UNSPECIFIED_NETWORK_GUID(_pNetworkGuid)
+#define NET_IS_UNSPECIFIED_NETWORK_GUID(_NetworkGuidValue)
+
+//
+// To prevent collisions between user-assigned and system-assigend site-ids,
+// we partition the site-id space into two:
+// 1. User-Assigned: NET_SITEID_UNSPECIFIED < SiteId < NET_SITEID_MAXUSER
+// 2. System-Assigned: NET_SITEID_MAXUSER < SiteId < NET_SITEID_MAXSYSTEM
+//
+// Note: A network's SiteId doesn't really need to be settable.
+// 1. The network profile manager creates a network per network profile.
+// 2. NDIS/IF assigns a unique SiteId to each network.
+//
+#define NET_SITEID_UNSPECIFIED (0)
+#define NET_SITEID_MAXUSER (0x07ffffff)
+#define NET_SITEID_MAXSYSTEM (0x0fffffff)
+C_ASSERT(NET_SITEID_MAXUSER < NET_SITEID_MAXSYSTEM);
+
+typedef enum _NET_IF_RCV_ADDRESS_TYPE // ifRcvAddressType
+{
+ NET_IF_RCV_ADDRESS_TYPE_OTHER = 1,
+ NET_IF_RCV_ADDRESS_TYPE_VOLATILE = 2,
+ NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = 3
+} NET_IF_RCV_ADDRESS_TYPE, *PNET_IF_RCV_ADDRESS_TYPE;
+
+typedef struct _NET_IF_RCV_ADDRESS_LH
+{
+ NET_IF_RCV_ADDRESS_TYPE ifRcvAddressType;
+ USHORT ifRcvAddressLength;
+ USHORT ifRcvAddressOffset; // from beginning of this struct
+} NET_IF_RCV_ADDRESS_LH, *PNET_IF_RCV_ADDRESS_LH;
+
+typedef struct _NET_IF_ALIAS_LH
+{
+ USHORT ifAliasLength; // in bytes, of ifAlias string
+ USHORT ifAliasOffset; // in bytes, from beginning of this struct
+} NET_IF_ALIAS_LH, *PNET_IF_ALIAS_LH;
+
+#pragma warning(push)
+#pragma warning(disable:4214) // bit field types other than int
+typedef union _NET_LUID_LH
+{
+ ULONG64 Value;
+ struct
+ {
+ ULONG64 Reserved:24;
+ ULONG64 NetLuidIndex:24;
+ ULONG64 IfType:16; // equal to IANA IF type
+ }Info;
+} NET_LUID_LH, *PNET_LUID_LH;
+#pragma warning(pop)
+
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+typedef NET_IF_RCV_ADDRESS_LH NET_IF_RCV_ADDRESS;
+typedef NET_IF_RCV_ADDRESS* PNET_IF_RCV_ADDRESS;
+
+typedef NET_IF_ALIAS_LH NET_IF_ALIAS;
+typedef NET_IF_ALIAS* PNET_IF_ALIAS;
+#endif //NTDDI_LONGHORN
+
+//
+// Need to make this visible on all platforms (for the purpose of IF_LUID).
+//
+typedef NET_LUID_LH NET_LUID;
+typedef NET_LUID* PNET_LUID;
+
+//
+// IF_LUID
+//
+// Define the locally unique datalink interface identifier type.
+// This type is persistable.
+//
+typedef NET_LUID IF_LUID, *PIF_LUID;
+
+typedef ULONG NET_IFINDEX, *PNET_IFINDEX; // Interface Index (ifIndex)
+typedef UINT16 NET_IFTYPE, *PNET_IFTYPE; // Interface Type (IANA ifType)
+
+#define NET_IFINDEX_UNSPECIFIED (NET_IFINDEX)(0) // Not a valid ifIndex
+#define NET_IFLUID_UNSPECIFIED (0) // Not a valid if Luid
+
+//
+// Definitions for NET_IF_INFORMATION.Flags
+//
+#define NIIF_HARDWARE_INTERFACE 0x00000001 // Set iff hardware
+#define NIIF_FILTER_INTERFACE 0x00000002
+#define NIIF_NDIS_RESERVED1 0x00000004
+#define NIIF_NDIS_RESERVED2 0x00000008
+#define NIIF_NDIS_RESERVED3 0x00000010
+#define NIIF_NDIS_WDM_INTERFACE 0x00000020
+#define NIIF_NDIS_ENDPOINT_INTERFACE 0x00000040
+
+#define NIIF_WAN_TUNNEL_TYPE_UNKNOWN ((ULONG)(-1))
+
+//
+// Define datalink interface access types.
+//
+typedef enum _NET_IF_ACCESS_TYPE
+{
+ NET_IF_ACCESS_LOOPBACK = 1,
+ NET_IF_ACCESS_BROADCAST = 2,
+ NET_IF_ACCESS_POINT_TO_POINT = 3,
+ NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
+ NET_IF_ACCESS_MAXIMUM = 5
+} NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
+
+
+//
+// Define datalink interface direction types.
+//
+typedef enum _NET_IF_DIRECTION_TYPE
+{
+ NET_IF_DIRECTION_SENDRECEIVE,
+ NET_IF_DIRECTION_SENDONLY,
+ NET_IF_DIRECTION_RECEIVEONLY,
+ NET_IF_DIRECTION_MAXIMUM
+} NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
+
+
+typedef enum _NET_IF_CONNECTION_TYPE
+{
+ NET_IF_CONNECTION_DEDICATED = 1,
+ NET_IF_CONNECTION_PASSIVE = 2,
+ NET_IF_CONNECTION_DEMAND = 3,
+ NET_IF_CONNECTION_MAXIMUM = 4
+} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
+
+
+typedef enum _NET_IF_MEDIA_CONNECT_STATE
+{
+ MediaConnectStateUnknown,
+ MediaConnectStateConnected,
+ MediaConnectStateDisconnected
+} NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
+
+#define NET_IF_LINK_SPEED_UNKNOWN ((ULONG64)(-1))
+
+//
+// Defines the duplex state of media
+//
+typedef enum _NET_IF_MEDIA_DUPLEX_STATE
+{
+ MediaDuplexStateUnknown,
+ MediaDuplexStateHalf,
+ MediaDuplexStateFull
+} NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
+
+
+// Special values for fields in NET_PHYSICAL_LOCATION
+#define NIIF_BUS_NUMBER_UNKNOWN ((ULONG)(-1))
+#define NIIF_SLOT_NUMBER_UNKNOWN ((ULONG)(-1))
+#define NIIF_FUNCTION_NUMBER_UNKNOWN ((ULONG)(-1))
+
+typedef struct _NET_PHYSICAL_LOCATION_LH
+{
+ ULONG BusNumber; // Physical location
+ ULONG SlotNumber; // ... for hardware
+ ULONG FunctionNumber; // ... devices.
+} NET_PHYSICAL_LOCATION_LH, *PNET_PHYSICAL_LOCATION_LH;
+
+//
+// maximum string size in -wchar- units
+//
+#define IF_MAX_STRING_SIZE 256
+
+typedef struct _IF_COUNTED_STRING_LH
+{
+ USHORT Length; // in -Bytes-
+ WCHAR String[IF_MAX_STRING_SIZE + 1];
+} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
+
+#define IF_MAX_PHYS_ADDRESS_LENGTH 32
+
+typedef struct _IF_PHYSICAL_ADDRESS_LH
+{
+ USHORT Length;
+ UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
+} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
+
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+typedef NET_PHYSICAL_LOCATION_LH NET_PHYSICAL_LOCATION;
+typedef NET_PHYSICAL_LOCATION* PNET_PHYSICAL_LOCATION;
+
+typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
+typedef IF_COUNTED_STRING* PIF_COUNTED_STRING;
+
+typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
+typedef IF_PHYSICAL_ADDRESS* PIF_PHYSICAL_ADDRESS;
+#endif
+
+
+//
+// IF_INDEX
+//
+// Define the interface index type.
+// This type is not persistable.
+// This must be unsigned (not an enum) to replace previous uses of
+// an index that used a DWORD type.
+//
+
+typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
+#define IFI_UNSPECIFIED NET_IFINDEX_UNSPECIFIED
+
+
+//
+// Get definitions for IFTYPE and IF_ACCESS_TYPE.
+//
+#include <ipifcons.h>
+
+
+//
+// Types of tunnels (sub-type of IF_TYPE when IF_TYPE is IF_TYPE_TUNNEL).
+// See http://www.iana.org/assignments/ianaiftype-mib.
+//
+typedef enum {
+ TUNNEL_TYPE_NONE = 0,
+ TUNNEL_TYPE_OTHER = 1,
+ TUNNEL_TYPE_DIRECT = 2,
+ TUNNEL_TYPE_6TO4 = 11,
+ TUNNEL_TYPE_ISATAP = 13,
+ TUNNEL_TYPE_TEREDO = 14,
+} TUNNEL_TYPE, *PTUNNEL_TYPE;
+
+//
+// IF_ADMINISTRATIVE_STATE
+//
+// Datalink Interface Administrative State.
+// Indicates whether the interface has been administratively enabled.
+//
+
+typedef enum _IF_ADMINISTRATIVE_STATE {
+ IF_ADMINISTRATIVE_DISABLED,
+ IF_ADMINISTRATIVE_ENABLED,
+ IF_ADMINISTRATIVE_DEMANDDIAL,
+} IF_ADMINISTRATIVE_STATE, *PIF_ADMINISTRATIVE_STATE;
+
+
+//
+// Note: Interface is Operational iff
+// ((MediaSense is Connected) and (AdministrativeState is Enabled))
+// or
+// ((MediaSense is Connected) and (AdministrativeState is OnDemand))
+//
+// !Operational iff
+// ((MediaSense != Connected) or (AdministrativeState is Disabled))
+//
+
+//
+// OperStatus values from RFC 2863
+//
+typedef enum {
+ IfOperStatusUp = 1,
+ IfOperStatusDown,
+ IfOperStatusTesting,
+ IfOperStatusUnknown,
+ IfOperStatusDormant,
+ IfOperStatusNotPresent,
+ IfOperStatusLowerLayerDown
+} IF_OPER_STATUS;
+/* +++++++++++++++++++++++ from ifdef.h */
+
+
+/* +++++++++++++++++++++++ from iptypes.h */
+// Definitions and structures used by getnetworkparams and getadaptersinfo apis
+
+#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
+#define MAX_ADAPTER_NAME_LENGTH 256 // arb.
+#define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
+#define DEFAULT_MINIMUM_ENTITIES 32 // arb.
+#define MAX_HOSTNAME_LEN 128 // arb.
+#define MAX_DOMAIN_NAME_LEN 128 // arb.
+#define MAX_SCOPE_ID_LEN 256 // arb.
+#define MAX_DHCPV6_DUID_LENGTH 130 // RFC 3315.
+
+//
+// types
+//
+
+// Node Type
+
+#define BROADCAST_NODETYPE 1
+#define PEER_TO_PEER_NODETYPE 2
+#define MIXED_NODETYPE 4
+#define HYBRID_NODETYPE 8
+
+//
+// IP_ADDRESS_STRING - store an IP address as a dotted decimal string
+//
+
+typedef struct {
+ char String[4 * 4];
+} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
+
+//
+// IP_ADDR_STRING - store an IP address with its corresponding subnet mask,
+// both as dotted decimal strings
+//
+
+typedef struct _IP_ADDR_STRING {
+ struct _IP_ADDR_STRING* Next;
+ IP_ADDRESS_STRING IpAddress;
+ IP_MASK_STRING IpMask;
+ DWORD Context;
+} IP_ADDR_STRING, *PIP_ADDR_STRING;
+
+//
+// ADAPTER_INFO - per-adapter information. All IP addresses are stored as
+// strings
+//
+
+typedef struct _IP_ADAPTER_INFO {
+ struct _IP_ADAPTER_INFO* Next;
+ DWORD ComboIndex;
+ char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
+ char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
+ UINT AddressLength;
+ BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
+ DWORD Index;
+ UINT Type;
+ UINT DhcpEnabled;
+ PIP_ADDR_STRING CurrentIpAddress;
+ IP_ADDR_STRING IpAddressList;
+ IP_ADDR_STRING GatewayList;
+ IP_ADDR_STRING DhcpServer;
+ BOOL HaveWins;
+ IP_ADDR_STRING PrimaryWinsServer;
+ IP_ADDR_STRING SecondaryWinsServer;
+ time_t LeaseObtained;
+ time_t LeaseExpires;
+} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
+
+#ifdef _WINSOCK2API_
+
+//
+// The following types require Winsock2.
+//
+
+typedef NL_PREFIX_ORIGIN IP_PREFIX_ORIGIN;
+typedef NL_SUFFIX_ORIGIN IP_SUFFIX_ORIGIN;
+typedef NL_DAD_STATE IP_DAD_STATE;
+
+typedef struct _IP_ADAPTER_UNICAST_ADDRESS_LH {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ };
+ };
+ struct _IP_ADAPTER_UNICAST_ADDRESS_LH *Next;
+ SOCKET_ADDRESS Address;
+
+ IP_PREFIX_ORIGIN PrefixOrigin;
+ IP_SUFFIX_ORIGIN SuffixOrigin;
+ IP_DAD_STATE DadState;
+
+ ULONG ValidLifetime;
+ ULONG PreferredLifetime;
+ ULONG LeaseLifetime;
+ UINT8 OnLinkPrefixLength;
+} IP_ADAPTER_UNICAST_ADDRESS_LH,
+ *PIP_ADAPTER_UNICAST_ADDRESS_LH;
+
+typedef struct _IP_ADAPTER_UNICAST_ADDRESS_XP {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ };
+ };
+ struct _IP_ADAPTER_UNICAST_ADDRESS_XP *Next;
+ SOCKET_ADDRESS Address;
+
+ IP_PREFIX_ORIGIN PrefixOrigin;
+ IP_SUFFIX_ORIGIN SuffixOrigin;
+ IP_DAD_STATE DadState;
+
+ ULONG ValidLifetime;
+ ULONG PreferredLifetime;
+ ULONG LeaseLifetime;
+} IP_ADAPTER_UNICAST_ADDRESS_XP, *PIP_ADAPTER_UNICAST_ADDRESS_XP;
+
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+typedef IP_ADAPTER_UNICAST_ADDRESS_LH IP_ADAPTER_UNICAST_ADDRESS;
+typedef IP_ADAPTER_UNICAST_ADDRESS_LH *PIP_ADAPTER_UNICAST_ADDRESS;
+#elif (NTDDI_VERSION >= NTDDI_WINXP)
+typedef IP_ADAPTER_UNICAST_ADDRESS_XP IP_ADAPTER_UNICAST_ADDRESS;
+typedef IP_ADAPTER_UNICAST_ADDRESS_XP *PIP_ADAPTER_UNICAST_ADDRESS;
+#endif
+
+//
+// Bit values of IP_ADAPTER_UNICAST_ADDRESS Flags field.
+//
+#define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x01
+#define IP_ADAPTER_ADDRESS_TRANSIENT 0x02
+
+typedef struct _IP_ADAPTER_ANYCAST_ADDRESS_XP {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ };
+ };
+ struct _IP_ADAPTER_ANYCAST_ADDRESS_XP *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_ANYCAST_ADDRESS_XP, *PIP_ADAPTER_ANYCAST_ADDRESS_XP;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef IP_ADAPTER_ANYCAST_ADDRESS_XP IP_ADAPTER_ANYCAST_ADDRESS;
+typedef IP_ADAPTER_ANYCAST_ADDRESS_XP *PIP_ADAPTER_ANYCAST_ADDRESS;
+#endif
+
+typedef struct _IP_ADAPTER_MULTICAST_ADDRESS_XP {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ };
+ };
+ struct _IP_ADAPTER_MULTICAST_ADDRESS_XP *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_MULTICAST_ADDRESS_XP, *PIP_ADAPTER_MULTICAST_ADDRESS_XP;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef IP_ADAPTER_MULTICAST_ADDRESS_XP IP_ADAPTER_MULTICAST_ADDRESS;
+typedef IP_ADAPTER_MULTICAST_ADDRESS_XP *PIP_ADAPTER_MULTICAST_ADDRESS;
+#endif
+
+typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Reserved;
+ };
+ };
+ struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_DNS_SERVER_ADDRESS_XP, *PIP_ADAPTER_DNS_SERVER_ADDRESS_XP;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef IP_ADAPTER_DNS_SERVER_ADDRESS_XP IP_ADAPTER_DNS_SERVER_ADDRESS;
+typedef IP_ADAPTER_DNS_SERVER_ADDRESS_XP *PIP_ADAPTER_DNS_SERVER_ADDRESS;
+#endif
+
+typedef struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Reserved;
+ };
+ };
+ struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_WINS_SERVER_ADDRESS_LH, *PIP_ADAPTER_WINS_SERVER_ADDRESS_LH;
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+typedef IP_ADAPTER_WINS_SERVER_ADDRESS_LH IP_ADAPTER_WINS_SERVER_ADDRESS;
+typedef IP_ADAPTER_WINS_SERVER_ADDRESS_LH *PIP_ADAPTER_WINS_SERVER_ADDRESS;
+#endif
+
+
+typedef struct _IP_ADAPTER_GATEWAY_ADDRESS_LH {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Reserved;
+ };
+ };
+ struct _IP_ADAPTER_GATEWAY_ADDRESS_LH *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_GATEWAY_ADDRESS_LH, *PIP_ADAPTER_GATEWAY_ADDRESS_LH;
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+typedef IP_ADAPTER_GATEWAY_ADDRESS_LH IP_ADAPTER_GATEWAY_ADDRESS;
+typedef IP_ADAPTER_GATEWAY_ADDRESS_LH *PIP_ADAPTER_GATEWAY_ADDRESS;
+#endif
+
+typedef struct _IP_ADAPTER_PREFIX_XP {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ };
+ };
+ struct _IP_ADAPTER_PREFIX_XP *Next;
+ SOCKET_ADDRESS Address;
+ ULONG PrefixLength;
+} IP_ADAPTER_PREFIX_XP, *PIP_ADAPTER_PREFIX_XP;
+#if (NTDDI_VERSION >= NTDDI_WINXP)
+typedef IP_ADAPTER_PREFIX_XP IP_ADAPTER_PREFIX;
+typedef IP_ADAPTER_PREFIX_XP *PIP_ADAPTER_PREFIX;
+#endif
+
+//
+// Bit values of IP_ADAPTER_ADDRESSES Flags field.
+//
+#define IP_ADAPTER_DDNS_ENABLED 0x00000001
+#define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x00000002
+#define IP_ADAPTER_DHCP_ENABLED 0x00000004
+#define IP_ADAPTER_RECEIVE_ONLY 0x00000008
+#define IP_ADAPTER_NO_MULTICAST 0x00000010
+#define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x00000020
+#define IP_ADAPTER_NETBIOS_OVER_TCPIP_ENABLED 0x00000040
+#define IP_ADAPTER_IPV4_ENABLED 0x00000080
+#define IP_ADAPTER_IPV6_ENABLED 0x00000100
+
+typedef struct _IP_ADAPTER_ADDRESSES_LH {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ IF_INDEX IfIndex;
+ };
+ };
+ struct _IP_ADAPTER_ADDRESSES_LH *Next;
+ PCHAR AdapterName;
+ PIP_ADAPTER_UNICAST_ADDRESS_LH FirstUnicastAddress;
+ PIP_ADAPTER_ANYCAST_ADDRESS_XP FirstAnycastAddress;
+ PIP_ADAPTER_MULTICAST_ADDRESS_XP FirstMulticastAddress;
+ PIP_ADAPTER_DNS_SERVER_ADDRESS_XP FirstDnsServerAddress;
+ PWCHAR DnsSuffix;
+ PWCHAR Description;
+ PWCHAR FriendlyName;
+ BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
+ ULONG PhysicalAddressLength;
+ union {
+ ULONG Flags;
+ struct {
+ ULONG DdnsEnabled : 1;
+ ULONG RegisterAdapterSuffix : 1;
+ ULONG Dhcpv4Enabled : 1;
+ ULONG ReceiveOnly : 1;
+ ULONG NoMulticast : 1;
+ ULONG Ipv6OtherStatefulConfig : 1;
+ ULONG NetbiosOverTcpipEnabled : 1;
+ ULONG Ipv4Enabled : 1;
+ ULONG Ipv6Enabled : 1;
+ ULONG Ipv6ManagedAddressConfigurationSupported : 1;
+ };
+ };
+ ULONG Mtu;
+ IFTYPE IfType;
+ IF_OPER_STATUS OperStatus;
+ IF_INDEX Ipv6IfIndex;
+ ULONG ZoneIndices[16];
+ PIP_ADAPTER_PREFIX_XP FirstPrefix;
+
+ ULONG64 TransmitLinkSpeed;
+ ULONG64 ReceiveLinkSpeed;
+ PIP_ADAPTER_WINS_SERVER_ADDRESS_LH FirstWinsServerAddress;
+ PIP_ADAPTER_GATEWAY_ADDRESS_LH FirstGatewayAddress;
+ ULONG Ipv4Metric;
+ ULONG Ipv6Metric;
+ IF_LUID Luid;
+ SOCKET_ADDRESS Dhcpv4Server;
+ NET_IF_COMPARTMENT_ID CompartmentId;
+ NET_IF_NETWORK_GUID NetworkGuid;
+ NET_IF_CONNECTION_TYPE ConnectionType;
+ TUNNEL_TYPE TunnelType;
+ //
+ // DHCP v6 Info.
+ //
+ SOCKET_ADDRESS Dhcpv6Server;
+ BYTE Dhcpv6ClientDuid[MAX_DHCPV6_DUID_LENGTH];
+ ULONG Dhcpv6ClientDuidLength;
+ ULONG Dhcpv6Iaid;
+} IP_ADAPTER_ADDRESSES_LH,
+ *PIP_ADAPTER_ADDRESSES_LH;
+
+typedef struct _IP_ADAPTER_ADDRESSES_XP {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD IfIndex;
+ };
+ };
+ struct _IP_ADAPTER_ADDRESSES_XP *Next;
+ PCHAR AdapterName;
+ PIP_ADAPTER_UNICAST_ADDRESS_XP FirstUnicastAddress;
+ PIP_ADAPTER_ANYCAST_ADDRESS_XP FirstAnycastAddress;
+ PIP_ADAPTER_MULTICAST_ADDRESS_XP FirstMulticastAddress;
+ PIP_ADAPTER_DNS_SERVER_ADDRESS_XP FirstDnsServerAddress;
+ PWCHAR DnsSuffix;
+ PWCHAR Description;
+ PWCHAR FriendlyName;
+ BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
+ DWORD PhysicalAddressLength;
+ DWORD Flags;
+ DWORD Mtu;
+ DWORD IfType;
+ IF_OPER_STATUS OperStatus;
+ DWORD Ipv6IfIndex;
+ DWORD ZoneIndices[16];
+ PIP_ADAPTER_PREFIX_XP FirstPrefix;
+} IP_ADAPTER_ADDRESSES_XP,
+ *PIP_ADAPTER_ADDRESSES_XP;
+
+#if (NTDDI_VERSION >= NTDDI_LONGHORN)
+typedef IP_ADAPTER_ADDRESSES_LH IP_ADAPTER_ADDRESSES;
+typedef IP_ADAPTER_ADDRESSES_LH *PIP_ADAPTER_ADDRESSES;
+#elif (NTDDI_VERSION >= NTDDI_WINXP)
+typedef IP_ADAPTER_ADDRESSES_XP IP_ADAPTER_ADDRESSES;
+typedef IP_ADAPTER_ADDRESSES_XP *PIP_ADAPTER_ADDRESSES;
+#else
+//
+// For platforms other platforms that are including
+// the file but not using the types.
+//
+typedef IP_ADAPTER_ADDRESSES_XP IP_ADAPTER_ADDRESSES;
+typedef IP_ADAPTER_ADDRESSES_XP *PIP_ADAPTER_ADDRESSES;
+#endif
+
+
+//
+// Flags used as argument to GetAdaptersAddresses().
+// "SKIP" flags are added when the default is to include the information.
+// "INCLUDE" flags are added when the default is to skip the information.
+//
+#define GAA_FLAG_SKIP_UNICAST 0x0001
+#define GAA_FLAG_SKIP_ANYCAST 0x0002
+#define GAA_FLAG_SKIP_MULTICAST 0x0004
+#define GAA_FLAG_SKIP_DNS_SERVER 0x0008
+#define GAA_FLAG_INCLUDE_PREFIX 0x0010
+#define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
+#define GAA_FLAG_INCLUDE_WINS_INFO 0x0040
+#define GAA_FLAG_INCLUDE_GATEWAYS 0x0080
+#define GAA_FLAG_INCLUDE_ALL_INTERFACES 0x0100
+#define GAA_FLAG_INCLUDE_ALL_COMPARTMENTS 0x0200
+#define GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER 0x0400
+
+#endif /* _WINSOCK2API_ */
+/* +++++++++++++++++++++++ from iptypes.h */
+
+
+/* +++++++++++++++++++++++ from iphlpapi.h */
+#ifdef _WINSOCK2API_
+
+//
+// The following functions require Winsock2.
+//
+
+ULONG
+WINAPI
+GetAdaptersAddresses(
+ IN ULONG Family,
+ IN ULONG Flags,
+ IN PVOID Reserved,
+ __out_bcount_opt(*SizePointer) PIP_ADAPTER_ADDRESSES AdapterAddresses,
+ IN OUT PULONG SizePointer
+ );
+
+#endif
+/* +++++++++++++++++++++++ from iphlpapi.h */
+
+#pragma warning(pop)
+#endif /* !_W64 */
+#endif /* GAA_COMPAT_H */
diff --git a/ports/winnt/include/hopf_PCI_io.h b/ports/winnt/include/hopf_PCI_io.h
new file mode 100644
index 000000000000..7bca1d3f57c9
--- /dev/null
+++ b/ports/winnt/include/hopf_PCI_io.h
@@ -0,0 +1,91 @@
+/*
+ * hopf_PCI_io.h
+ * structur definition and prototype Function declarations
+ *
+ * Date: 21.03.2000 Revision: 01.10
+ *
+ * Copyright (C) 1999, 2000 by Bernd Altmeier altmeier@ATLSoft.de
+ *
+ */
+
+#if defined(__cplusplus)
+extern "C"{
+#endif
+
+#ifndef __inpREAD_H
+#define __inpREAD_H
+
+
+typedef struct _CLOCKVER {
+ CHAR cVersion[255];
+} CLOCKVER, *PCLOCKVER, *LPCLOCKVER;
+
+typedef struct _HOPFTIME {
+ WORD wYear;
+ WORD wMonth;
+ WORD wDayOfWeek;
+ WORD wDay;
+ WORD wHour;
+ WORD wMinute;
+ WORD wSecond;
+ WORD wMilliseconds;
+ WORD wStatus;
+} HOPFTIME, *PHOPFTIME, *LPHOPFTIME;
+
+typedef struct _SATSTAT {
+ BYTE wVisible;
+ BYTE wMode;
+ BYTE wSat0;
+ BYTE wRat0;
+ BYTE wSat1;
+ BYTE wRat1;
+ BYTE wSat2;
+ BYTE wRat2;
+ BYTE wSat3;
+ BYTE wRat3;
+ BYTE wSat4;
+ BYTE wRat4;
+ BYTE wSat5;
+ BYTE wRat5;
+ BYTE wSat6;
+ BYTE wRat6;
+ BYTE wSat7;
+ BYTE wRat7;
+} SATSTAT, *PSATSTAT, *LPSATSTAT;
+
+
+typedef struct _GPSPOS {
+ LONG wAltitude; // Höhe immer 0
+ LONG wLongitude; // Länge in Msec
+ LONG wLatitude; // Breite in Msec
+} GPSPOS, *PGPSPOS, *LPGPSPOS;
+
+
+typedef struct _DCFANTENNE {
+ BYTE bStatus;
+ BYTE bStatus1;
+ WORD wAntValue;
+} DCFANTENNE, *PDCFANTENNE, *LPDCFANTENNE;
+
+
+
+// Function declarations
+BOOL OpenHopfDevice();
+BOOL CloseHopfDevice();
+VOID GetHopfTime(LPHOPFTIME Data, DWORD Offset);
+VOID GetHopfLocalTime(LPHOPFTIME Data);
+VOID GetHopfSystemTime(LPHOPFTIME Data);
+VOID GetSatData(LPSATSTAT Data);
+VOID GetDiffTime(LPLONG Data);
+VOID GetPosition(LPGPSPOS Data);
+VOID GetHardwareVersion(LPCLOCKVER Data);
+VOID GetHardwareData(LPDWORD Data,WORD Ofs);
+VOID GetDCFAntenne(LPDCFANTENNE Data);
+
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* inpREAD_H */
+
diff --git a/ports/winnt/include/netdb.h b/ports/winnt/include/netdb.h
new file mode 100644
index 000000000000..5e1599737300
--- /dev/null
+++ b/ports/winnt/include/netdb.h
@@ -0,0 +1,4 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
diff --git a/ports/winnt/include/ntp_iocompletionport.h b/ports/winnt/include/ntp_iocompletionport.h
new file mode 100644
index 000000000000..7d7ff7c4b207
--- /dev/null
+++ b/ports/winnt/include/ntp_iocompletionport.h
@@ -0,0 +1,27 @@
+#if !defined __ntp_iocompletionport_h
+# define __ntp_iocompletionport_h
+
+#include "ntp_fp.h"
+#include "ntp.h"
+#include "clockstuff.h"
+#include "ntp_worker.h"
+
+# if defined(HAVE_IO_COMPLETION_PORT)
+
+extern void init_io_completion_port(void);
+extern void uninit_io_completion_port(void);
+
+extern int io_completion_port_add_socket(SOCKET fd, struct interface *);
+
+struct refclockio; /* in ntp_refclock.h but inclusion here triggers problems */
+extern int io_completion_port_add_clock_io(struct refclockio *rio);
+extern void io_completion_port_remove_clock_io(struct refclockio *rio);
+extern int io_completion_port_sendto(int, void *, size_t, sockaddr_u *);
+
+extern int GetReceivedBuffers(void);
+
+extern HANDLE WaitableExitEventHandle;
+
+# endif
+
+#endif
diff --git a/ports/winnt/include/ntp_timer.h b/ports/winnt/include/ntp_timer.h
new file mode 100644
index 000000000000..15328a67a123
--- /dev/null
+++ b/ports/winnt/include/ntp_timer.h
@@ -0,0 +1,6 @@
+#ifndef NTP_TIMER_H
+#define NTP_TIMER_H
+
+extern void timer_clr_stats(void);
+
+#endif /* NTP_TIMER_H */
diff --git a/ports/winnt/include/ntservice.h b/ports/winnt/include/ntservice.h
new file mode 100644
index 000000000000..f44335fdb3b9
--- /dev/null
+++ b/ports/winnt/include/ntservice.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 1999-2001 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef NTSERVICE_H
+#define NTSERVICE_H
+
+#define NTP_DISPLAY_NAME "NetworkTimeProtocol"
+#define NTP_SERVICE_NAME "ntpd"
+
+void ntservice_init(void);
+void UpdateSCM(DWORD);
+void WINAPI ServiceControl(DWORD dwCtrlCode);
+void ntservice_shutdown(void);
+BOOL ntservice_systemisshuttingdown(void);
+BOOL WINAPI OnConsoleEvent(DWORD dwCtrlType);
+
+#endif /* NTSERVICE_H */
diff --git a/ports/winnt/include/stdint.h b/ports/winnt/include/stdint.h
new file mode 100644
index 000000000000..4040c24f0f84
--- /dev/null
+++ b/ports/winnt/include/stdint.h
@@ -0,0 +1,244 @@
+/*
+ * stdint_msvc.h - C99 integer types for older Visual C compilers
+ *
+ * Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project.
+ * The contents of 'html/copyright.html' apply.
+ *
+ * ----------------------------------------------------------------------
+ *
+ * Fairly straight forward implementation of the C99 standard integer
+ * types.
+ */
+
+#ifndef __STDINT_INCLUDED
+#define __STDINT_INCLUDED
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1800
+# error Use only with MSVC6 - MSVC11(VS2012)
+#endif
+
+#include <crtdefs.h>
+#include <limits.h>
+
+/* ---------------------------------------------------------------------
+ * We declare the min/max values, using the MSVC syntax for literals of
+ * a given bit width.
+ */
+
+#define _VC_SI_LIT(lit,wbit) (lit ## i ## wbit)
+#define _VC_UI_LIT(lit,wbit) (lit ## ui ## wbit)
+
+/* ---------------------------------------------------------------------
+ * Exact width integer types
+ */
+typedef __int8 int8_t;
+typedef __int16 int16_t;
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+
+typedef unsigned __int8 uint8_t;
+typedef unsigned __int16 uint16_t;
+typedef unsigned __int32 uint32_t;
+typedef unsigned __int64 uint64_t;
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+# define INT8_MIN _I8_MIN
+# define INT8_MAX _I8_MAX
+# define UINT8_MAX _UI8_MAX
+# define INT16_MIN _I16_MIN
+# define INT16_MAX _I16_MAX
+# define UINT16_MAX _UI16_MAX
+# define INT32_MIN _I32_MIN
+# define INT32_MAX _I32_MAX
+# define UINT32_MAX _UI32_MAX
+# define INT64_MIN _I64_MIN
+# define INT64_MAX _I64_MAX
+# define UINT64_MAX _UI64_MAX
+#endif
+
+/* ---------------------------------------------------------------------
+ * Least-size integers
+ *
+ * These are mapped to exact size.
+ */
+typedef __int8 int_least8_t;
+typedef __int16 int_least16_t;
+typedef __int32 int_least32_t;
+typedef __int64 int_least64_t;
+
+typedef unsigned __int8 uint_least8_t;
+typedef unsigned __int16 uint_least16_t;
+typedef unsigned __int32 uint_least32_t;
+typedef unsigned __int64 uint_least64_t;
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+#define INT_LEAST8_MIN _I8_MIN
+#define INT_LEAST8_MAX _I8_MAX
+#define UINT_LEAST8_MAX _UI8_MAX
+#define INT_LEAST16_MIN _I16_MIN
+#define INT_LEAST16_MAX _I16_MAX
+#define UINT_LEAST16_MAX _UI16_MAX
+#define INT_LEAST32_MIN _I32_MIN
+#define INT_LEAST32_MAX _I32_MAX
+#define UINT_LEAST32_MAX _UI32_MAX
+#define INT_LEAST64_MIN _I64_MIN
+#define INT_LEAST64_MAX _I64_MAX
+#define UINT_LEAST64_MAX _UI64_MAX
+#endif
+
+/* ---------------------------------------------------------------------
+ * least-size, fastest integer
+ *
+ * The 'FAST' types are all 32 bits, except the 64 bit quantity; as the
+ * natural register width is 32 bits, quantities of that size are fastest
+ * to operate on naturally. (This even holds for the x86_64; MSVC uses
+ * the 'llp64' model.
+ */
+typedef __int32 int_fast8_t;
+typedef __int32 int_fast16_t;
+typedef __int32 int_fast32_t;
+typedef __int64 int_fast64_t;
+
+typedef unsigned __int32 uint_fast8_t;
+typedef unsigned __int32 uint_fast16_t;
+typedef unsigned __int32 uint_fast32_t;
+typedef unsigned __int64 uint_fast64_t;
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+#define INT_FAST8_MIN _I32_MIN
+#define INT_FAST8_MAX _I32_MAX
+#define UINT_FAST8_MAX _UI32_MAX
+#define INT_FAST16_MIN _I32_MIN
+#define INT_FAST16_MAX _I32_MAX
+#define UINT_FAST16_MAX _UI32_MAX
+#define INT_FAST32_MIN _I32_MIN
+#define INT_FAST32_MAX _I32_MAX
+#define UINT_FAST32_MAX _UI32_MAX
+#define INT_FAST64_MIN _I64_MIN
+#define INT_FAST64_MAX _I64_MAX
+#define UINT_FAST64_MAX _UI64_MAX
+#endif
+
+/* ---------------------------------------------------------------------
+ * The (u)intptr_t, ptrdiff_t and size_t definitions depend on the
+ * target: 32bit for x86, and 64bit for x64, aka amd64. Well, we
+ * have to bite the bullet.
+ */
+
+/* ------------------------------------------------------------------ */
+# if defined(_WIN64) || defined(WIN64)
+/* ------------------------------------------------------------------ */
+
+# ifndef _INTPTR_T_DEFINED
+# define _INTPTR_T_DEFINED
+ typedef __int64 intptr_t;
+# endif
+
+# ifndef _UINTPTR_T_DEFINED
+# define _UINTPTR_T_DEFINED
+ typedef unsigned __int64 uintptr_t;
+# endif
+
+# ifndef _PTRDIFF_T_DEFINED
+# define _PTRDIFF_T_DEFINED
+ typedef __int64 ptrdiff_t;
+# endif
+
+# if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+# ifndef INTPTR_MIN
+# define INTPTR_MIN _I64_MIN
+# endif
+# ifndef INTPTR_MAX
+# define INTPTR_MAX _I64_MAX
+# endif
+# ifndef UINTPTR_MAX
+# define UINTPTR_MAX _UI64_MAX
+# endif
+# ifndef PTRDIFF_MIN
+# define PTRDIFF_MIN _I64_MIN
+# endif
+# ifndef PTRDIFF_MAX
+# define PTRDIFF_MAX _I64_MAX
+# endif
+# endif
+
+/* ------------------------------------------------------------------ */
+#else /* 32 bit target assumed here! */
+/* ------------------------------------------------------------------ */
+
+# ifndef _INTPTR_T_DEFINED
+# define _INTPTR_T_DEFINED
+ typedef __int32 intptr_t;
+# endif
+
+# ifndef _UINTPTR_T_DEFINED
+# define _UINTPTR_T_DEFINED
+ typedef unsigned __int32 uintptr_t;
+# endif
+
+# ifndef _PTRDIFF_T_DEFINED
+# define _PTRDIFF_T_DEFINED
+ typedef __int64 ptrdiff_t;
+# endif
+
+# if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+# ifndef INTPTR_MIN
+# define INTPTR_MIN _I32_MIN
+# endif
+# ifndef INTPTR_MAX
+# define INTPTR_MAX _I32_MAX
+# endif
+# ifndef UINTPTR_MAX
+# define UINTPTR_MAX _UI32_MAX
+# endif
+# ifndef PTRDIFF_MIN
+# define PTRDIFF_MIN _I32_MIN
+# endif
+# ifndef PTRDIFF_MAX
+# define PTRDIFF_MAX _I32_MAX
+# endif
+# endif
+#endif /* platform dependent stuff */
+
+
+/* ---------------------------------------------------------------------
+ * max integer is 64-bit integer
+ */
+typedef __int64 intmax_t;
+typedef unsigned __int64 uintmax_t;
+
+#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
+# define INTMAX_MIN _I64_MIN
+# define INTMAX_MAX _I64_MAX
+# define UINTMAX_MAX _UI64_MAX
+#endif
+
+/* ---------------------------------------------------------------------
+ * limit for size_t (older MSVC versions lack that one)
+ */
+#if _MSC_VER <=1200
+# if defined(_WIN64) || defined(WIN64)
+# define SIZE_MAX _UI64_MAX
+#else
+# define SIZE_MAX _UI32_MAX
+# endif
+#endif
+
+/* ---------------------------------------------------------------------
+ * construct numerical literals with precise size
+ */
+#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
+# define INT8_C(lit) _VC_SI_LIT(lit,8)
+# define UINT8_C(lit) _VC_UI_LIT(lit,8)
+# define INT16_C(lit) _VC_SI_LIT(lit,16)
+# define UINT16_C(lit) _VC_UI_LIT(lit,16)
+# define INT32_C(lit) _VC_SI_LIT(lit,32)
+# define UINT32_C(lit) _VC_UI_LIT(lit,32)
+# define INT64_C(lit) _VC_SI_LIT(lit,64)
+# define UINT64_C(lit) _VC_UI_LIT(lit,64)
+# define INTMAX_C(lit) _VC_SI_LIT(lit,64)
+# define UINTMAX_C(lit) _VC_UI_LIT(lit,64)
+#endif
+
+#endif
+/**** EOF ****/
diff --git a/ports/winnt/include/stdnoreturn.h b/ports/winnt/include/stdnoreturn.h
new file mode 100644
index 000000000000..65702e012026
--- /dev/null
+++ b/ports/winnt/include/stdnoreturn.h
@@ -0,0 +1,61 @@
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A substitute for ISO C11 <stdnoreturn.h>.
+
+ Copyright 2012-2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 2.1, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, see <http://www.gnu.org/licenses/>. */
+
+/* Written by Paul Eggert. */
+
+#ifndef noreturn
+
+/* ISO C11 <stdnoreturn.h> for platforms that lack it.
+
+ References:
+ ISO C11 (latest free draft
+ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf>)
+ section 7.23 */
+
+/* The definition of _Noreturn is copied here. */
+#if !defined _Noreturn && __STDC_VERSION__ < 201112
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+
+#if 1200 <= _MSC_VER
+/* Standard include files on this platform contain declarations like
+ "__declspec (noreturn) void abort (void);". "#define noreturn
+ _Noreturn" would cause this declaration to be rewritten to the
+ invalid "__declspec (__declspec (noreturn)) void abort (void);".
+ Instead, define noreturn to empty, so that such declarations are
+ rewritten to "__declspec () void abort (void);", which is
+ equivalent to "void abort (void);"; this gives up on noreturn's
+ advice to the compiler but at least it is valid code. */
+# define noreturn /*empty*/
+#else
+# define noreturn _Noreturn
+#endif
+
+/* Did he ever return?
+ No he never returned
+ And his fate is still unlearn'd ...
+ -- Steiner J, Hawes BL. M.T.A. (1949) */
+
+#endif /* noreturn */
diff --git a/ports/winnt/include/sys/ioctl.h b/ports/winnt/include/sys/ioctl.h
new file mode 100644
index 000000000000..6f4b07691661
--- /dev/null
+++ b/ports/winnt/include/sys/ioctl.h
@@ -0,0 +1,11 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
+
+#ifndef _IOCTL_H
+#define _IOCTL_H
+
+#include "win32_io.h"
+
+#endif \ No newline at end of file
diff --git a/ports/winnt/include/sys/param.h b/ports/winnt/include/sys/param.h
new file mode 100644
index 000000000000..5e1599737300
--- /dev/null
+++ b/ports/winnt/include/sys/param.h
@@ -0,0 +1,4 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
diff --git a/ports/winnt/include/sys/resource.h b/ports/winnt/include/sys/resource.h
new file mode 100644
index 000000000000..01f4c810ff7f
--- /dev/null
+++ b/ports/winnt/include/sys/resource.h
@@ -0,0 +1,10 @@
+/*
+ * ports/winnt/include/sys/resource.h
+ *
+ * routines declared in Unix systems' sys/resource.h
+ */
+
+#define PRIO_PROCESS 0
+#define NTP_PRIO (-12)
+
+int setpriority(int, int, int); /* winnt\libntp\setpriority.c */
diff --git a/ports/winnt/include/sys/signal.h b/ports/winnt/include/sys/signal.h
new file mode 100644
index 000000000000..5e1599737300
--- /dev/null
+++ b/ports/winnt/include/sys/signal.h
@@ -0,0 +1,4 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
diff --git a/ports/winnt/include/sys/time.h b/ports/winnt/include/sys/time.h
new file mode 100644
index 000000000000..b4489170bea0
--- /dev/null
+++ b/ports/winnt/include/sys/time.h
@@ -0,0 +1,25 @@
+/*
+ * ports/winnt/include/sys/time.h
+ *
+ * routines declared in Unix systems' sys/time.h
+ */
+
+#ifndef SYS_TIME_H
+#define SYS_TIME_H
+
+#include "ntp_types.h"
+#include <time.h>
+#include <sys/timeb.h>
+
+typedef struct timespec {
+ time_t tv_sec;
+ long tv_nsec;
+} timespec_t;
+
+#define TIMEOFDAY 0 /* getclock() clktyp arg */
+extern int getclock(int, struct timespec *ts);
+extern int gettimeofday(struct timeval *, void *);
+extern int settimeofday(struct timeval *);
+extern void init_win_precise_time(void);
+
+#endif /* SYS_TIME_H */
diff --git a/ports/winnt/include/sys/wait.h b/ports/winnt/include/sys/wait.h
new file mode 100644
index 000000000000..5e1599737300
--- /dev/null
+++ b/ports/winnt/include/sys/wait.h
@@ -0,0 +1,4 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
diff --git a/ports/winnt/include/syslog.h b/ports/winnt/include/syslog.h
new file mode 100644
index 000000000000..5cbf30a00a13
--- /dev/null
+++ b/ports/winnt/include/syslog.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2001 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* From BIND 9 lib/isc/include/isc/: syslog.h,v 1.4 2002/08/01 03:43:31 mayer */
+
+#ifndef _SYSLOG_H
+#define _SYSLOG_H
+
+#include <stdio.h>
+
+/* Constant definitions for openlog() */
+#define LOG_PID 1
+#define LOG_CONS 2
+/* NT event log does not support facility level */
+#define LOG_KERN 0
+#define LOG_USER 0
+#define LOG_MAIL 0
+#define LOG_DAEMON 0
+#define LOG_AUTH 0
+#define LOG_SYSLOG 0
+#define LOG_LPR 0
+#define LOG_LOCAL0 0
+#define LOG_LOCAL1 0
+#define LOG_LOCAL2 0
+#define LOG_LOCAL3 0
+#define LOG_LOCAL4 0
+#define LOG_LOCAL5 0
+#define LOG_LOCAL6 0
+#define LOG_LOCAL7 0
+
+#define LOG_EMERG 0 /* system is unusable */
+#define LOG_ALERT 1 /* action must be taken immediately */
+#define LOG_CRIT 2 /* critical conditions */
+#define LOG_ERR 3 /* error conditions */
+#define LOG_WARNING 4 /* warning conditions */
+#define LOG_NOTICE 5 /* normal but signification condition */
+#define LOG_INFO 6 /* informational */
+#define LOG_DEBUG 7 /* debug-level messages */
+
+/*
+ * These are ignored on NT
+ */
+#define LOG_NDELAY 0 /* Open the connection to syslogd immediately */
+
+#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */
+
+void
+syslog(int level, const char *fmt, ...);
+
+void
+openlog(const char *, int, ...);
+
+void
+closelog(void);
+
+void
+ModifyLogLevel(int level);
+
+int
+setlogmask(int maskpri);
+
+void
+InitNTLogging(FILE *, int);
+
+void
+NTReportError(const char *, const char *);
+
+#endif
diff --git a/ports/winnt/include/termios.h b/ports/winnt/include/termios.h
new file mode 100644
index 000000000000..9c1cc625cd40
--- /dev/null
+++ b/ports/winnt/include/termios.h
@@ -0,0 +1,214 @@
+#ifndef NTP_WIN_TERMIOS_H
+#define NTP_WIN_TERMIOS_H
+
+/* Flag definitions for compatibility
+ * ==================================
+*/
+
+#include <fcntl.h>
+
+#define NCCS 18 /* refclock_arc.c uses VTIME (17) */
+#define VEOL 3
+typedef unsigned char cc_t;
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+
+struct termios
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+ speed_t c_ispeed; /* input speed */
+ speed_t c_ospeed; /* output speed */
+};
+
+/* c_cc characters
+#define VINTR 0
+#define VQUIT 1
+#define VERASE 2
+#define VKILL 3
+#define VEOF 4
+#define VTIME 5
+#define VMIN 6
+#define VSWTC 7
+#define VSTART 8
+#define VSTOP 9
+#define VSUSP 10
+#define VEOL 11
+#define VREPRINT 12
+#define VDISCARD 13
+#define VWERASE 14
+#define VLNEXT 15
+#define VEOL2 16
+*/
+
+/* c_iflag bits */
+#define IGNBRK 0000001
+#define BRKINT 0000002
+#define IGNPAR 0000004
+#define PARMRK 0000010
+#define INPCK 0000020
+#define ISTRIP 0000040
+#define INLCR 0000100
+#define IGNCR 0000200
+#define ICRNL 0000400
+#define IUCLC 0001000
+#define IXON 0002000
+#define IXANY 0004000
+#define IXOFF 0010000
+#define IMAXBEL 0020000
+
+/* c_oflag bits */
+#define OPOST 0000001
+#define OLCUC 0000002
+#define ONLCR 0000004
+#define OCRNL 0000010
+#define ONOCR 0000020
+#define ONLRET 0000040
+#define OFILL 0000100
+#define OFDEL 0000200
+
+#define NLDLY 0000400
+#define NL0 0000000
+#define NL1 0000400
+
+#define CRDLY 0003000
+#define CR0 0000000
+#define CR1 0001000
+#define CR2 0002000
+#define CR3 0003000
+
+#define TABDLY 0014000
+#define TAB0 0000000
+#define TAB1 0004000
+#define TAB2 0010000
+#define TAB3 0014000
+#define XTABS 0014000
+
+#define BSDLY 0020000
+#define BS0 0000000
+#define BS1 0020000
+
+#define VTDLY 0040000
+#define VT0 0000000
+#define VT1 0040000
+
+#define FFDLY 0100000
+#define FF0 0000000
+#define FF1 0100000
+
+/* c_cflag bit meaning */
+#define CBAUD 0010017
+#define B0 0000000 /* hang up */
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+
+#define EXTA B19200
+#define EXTB B38400
+
+#define CSIZE 0000060
+#define CS5 0000000
+#define CS6 0000020
+#define CS7 0000040
+#define CS8 0000060
+
+#define CSTOPB 0000100
+#define CREAD 0000200
+#define PARENB 0000400
+#define PARODD 0001000
+#define HUPCL 0002000
+#define CLOCAL 0004000
+
+#define CBAUDEX 0010000
+#define B57600 0010001
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+
+#define CIBAUD 002003600000 /* input baud rate (not used) */
+#define CRTSCTS 020000000000 /* flow control */
+
+/* c_lflag bits */
+#define ISIG 0000001
+#define ICANON 0000002
+#define XCASE 0000004
+#define ECHO 0000010
+#define ECHOE 0000020
+#define ECHOK 0000040
+#define ECHONL 0000100
+#define NOFLSH 0000200
+#define TOSTOP 0000400
+#define ECHOCTL 0001000
+#define ECHOPRT 0002000
+#define ECHOKE 0004000
+#define FLUSHO 0010000
+#define PENDIN 0040000
+#define IEXTEN 0100000
+
+/* tcflow() and TCXONC use these */
+#define TCOOFF 0
+#define TCOON 1
+#define TCIOFF 2
+#define TCION 3
+
+/* tcflush() and TCFLSH use these */
+#define TCIFLUSH 0
+#define TCOFLUSH 1
+#define TCIOFLUSH 2
+
+/* tcsetattr uses these */
+#define TCSANOW 0
+#define TCSADRAIN 1
+#define TCSAFLUSH 2
+#define VMIN 16
+#define VTIME 17
+
+/* modem lines */
+#define TIOCM_LE 0x001
+#define TIOCM_DTR 0x002
+#define TIOCM_RTS 0x004
+#define TIOCM_ST 0x008
+#define TIOCM_SR 0x010
+#define TIOCM_CTS 0x020
+#define TIOCM_CAR 0x040
+#define TIOCM_RNG 0x080
+#define TIOCM_DSR 0x100
+#define TIOCM_CD TIOCM_CAR
+#define TIOCM_RI TIOCM_RNG
+#define TIOCM_OUT1 0x2000
+#define TIOCM_OUT2 0x4000
+
+/* ioctl */
+#define TIOCMGET 1
+#define TIOCMSET 2
+#define TIOCMBIC 3
+#define TIOCMBIS 4
+
+/* NOP cfsetospeed() and cfsetispeed() for now */
+#define cfsetospeed(dcb, spd) (0)
+#define cfsetispeed(dcb, spd) (0)
+
+extern int closeserial (int);
+extern int ioctl (int, int, int *);
+extern int tcsetattr (int, int, const struct termios *);
+extern int tcgetattr (int, struct termios *);
+extern int tcflush (int, int);
+extern int isserialhandle (HANDLE);
+
+#endif /* NTP_WIN_TERMIOS_H */
diff --git a/ports/winnt/include/timepps.h b/ports/winnt/include/timepps.h
new file mode 100644
index 000000000000..76b1bfada1ab
--- /dev/null
+++ b/ports/winnt/include/timepps.h
@@ -0,0 +1,811 @@
+/***********************************************************************
+ * *
+ * Copyright (c) David L. Mills 1999-2009 *
+ * *
+ * Permission to use, copy, modify, and distribute this software and *
+ * its documentation for any purpose and 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 *
+ * 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 makes no *
+ * representations about the suitability this software for any *
+ * purpose. It is provided "as is" without express or implied *
+ * warranty. *
+ * *
+ ***********************************************************************
+ * *
+ * This header file complies with "Pulse-Per-Second API for UNIX-like *
+ * Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
+ * and Marc Brett, from whom much of this code was shamelessly stolen. *
+ * *
+ * This modified timepps.h can be used to provide a PPSAPI interface *
+ * to a machine running Windows with one or more backend provider DLLs *
+ * implementing the provider interfaces defined herein. *
+ * *
+ * This Windows version was derived by Dave Hart *
+ * <davehart@davehart.com> from Mills' timepps-Solaris.h *
+ * *
+ ***********************************************************************
+ * *
+ * Some of this include file *
+ * Copyright (c) 1999 by Ulrich Windl, *
+ * based on code by Reg Clemens <reg@dwf.com> *
+ * based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
+ * *
+ ***********************************************************************
+ * *
+ * "THE BEER-WARE LICENSE" (Revision 42): *
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this *
+ * notice you can do whatever you want with this stuff. If we meet some*
+ * day, and you think this stuff is worth it, you can buy me a beer *
+ * in return. Poul-Henning Kamp *
+ * *
+ **********************************************************************/
+
+#ifndef TIMEPPS_H
+#define TIMEPPS_H
+
+#include "sys/time.h" /* in ntp ref source declares struct timespec */
+
+/*
+ * The following definitions are architecture independent
+ */
+
+#define PPS_API_VERS_1 1 /* API version number */
+#define PPS_JAN_1970 2208988800UL /* 1970 - 1900 in seconds */
+#define PPS_NANOSECOND 1000000000L /* one nanosecond in decimal */
+#define PPS_FRAC 4294967296. /* 2^32 as a double */
+#define PPS_HECTONANOSECONDS 10000000 /* 100ns units in a second */
+#define PPS_FILETIME_1970 0x019db1ded53e8000 /* unix epoch to Windows */
+
+#define PPS_NORMALIZE(x) /* normalize timespec */ \
+ do { \
+ if ((x).tv_nsec >= PPS_NANOSECOND) { \
+ (x).tv_nsec -= PPS_NANOSECOND; \
+ (x).tv_sec++; \
+ } else if ((x).tv_nsec < 0) { \
+ (x).tv_nsec += PPS_NANOSECOND; \
+ (x).tv_sec--; \
+ } \
+ } while (0)
+
+#define PPS_TSPECTONTP(x) /* convert timespec to ntp_fp */ \
+ do { \
+ double d_frac; \
+ \
+ d_frac = ((struct timespec)&(x))->tv_nsec \
+ * PPS_FRAC / PPS_NANOSECOND; \
+ (x).integral = ((struct timespec)&(x))->tv_sec \
+ + PPS_JAN_1970; \
+ (x).fractional = (unsigned int)d_frac; \
+ if (d_frac >= PPS_FRAC) \
+ (x).integral++; \
+ } while (0)
+
+#define PPS_NTPTOTSPEC(x) /* convert ntp_fp to timespec */ \
+ do { \
+ double d_frac; \
+ \
+ /* careful, doing in place and tv_sec may be 64bit */ \
+ d_frac = (double)((ntp_fp_t *)&(x))->fractional \
+ * PPS_NANOSECOND / PPS_FRAC; \
+ (x).tv_sec = ((ntp_fp_t *)&(x))->integral \
+ - (time_t)PPS_JAN_1970; \
+ (x).tv_nsec = (long)d_frac; \
+ } while (0)
+
+
+/*
+ * Device/implementation parameters (mode)
+ */
+
+#define PPS_CAPTUREASSERT 0x01 /* capture assert events */
+#define PPS_CAPTURECLEAR 0x02 /* capture clear events */
+#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
+
+#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
+#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
+#define PPS_OFFSETBOTH 0x30 /* apply compensation for both */
+
+#define PPS_CANWAIT 0x100 /* Can we wait for an event? */
+#define PPS_CANPOLL 0x200 /* "This bit is reserved for */
+
+/*
+ * Kernel actions (mode)
+ */
+
+#define PPS_ECHOASSERT 0x40 /* feed back assert event to output */
+#define PPS_ECHOCLEAR 0x80 /* feed back clear event to output */
+
+/*
+ * Timestamp formats (tsformat)
+ */
+
+#define PPS_TSFMT_TSPEC 0x1000 /* select timespec format */
+#define PPS_TSFMT_NTPFP 0x2000 /* select NTP format */
+#define PPS_TSFMT_BOTH (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)
+
+/*
+ * Kernel discipline actions (not used in Windows yet)
+ */
+
+#define PPS_KC_HARDPPS 0 /* enable kernel consumer */
+#define PPS_KC_HARDPPS_PLL 1 /* phase-lock mode */
+#define PPS_KC_HARDPPS_FLL 2 /* frequency-lock mode */
+
+/*
+ * Type definitions
+ */
+
+typedef unsigned long pps_seq_t; /* sequence number */
+
+#pragma warning(push)
+#pragma warning(disable: 201) /* nonstd extension nameless union */
+
+typedef struct ntp_fp {
+ union ntp_fp_sec {
+ unsigned int integral;
+ int s_integral;
+ };
+ unsigned int fractional;
+} ntp_fp_t; /* NTP-compatible time stamp */
+
+#pragma warning(pop)
+
+typedef union pps_timeu { /* timestamp format */
+ struct timespec tspec;
+ ntp_fp_t ntpfp;
+ unsigned long longpad[3];
+} pps_timeu_t; /* generic data type to represent time stamps */
+
+/* addition of NTP fixed-point format */
+
+#define NTPFP_M_ADD(r_i, r_f, a_i, a_f) /* r += a */ \
+ do { \
+ register u_int32 lo_tmp; \
+ register u_int32 hi_tmp; \
+ \
+ lo_tmp = ((r_f) & 0xffff) + ((a_f) & 0xffff); \
+ hi_tmp = (((r_f) >> 16) & 0xffff) + (((a_f) >> 16) & 0xffff); \
+ if (lo_tmp & 0x10000) \
+ hi_tmp++; \
+ (r_f) = ((hi_tmp & 0xffff) << 16) | (lo_tmp & 0xffff); \
+ \
+ (r_i) += (a_i); \
+ if (hi_tmp & 0x10000) \
+ (r_i)++; \
+ } while (0)
+
+#define NTPFP_L_ADDS(r, a) NTPFP_M_ADD((r)->integral, (r)->fractional, \
+ (a)->s_integral, (a)->fractional)
+
+
+/*
+ * Timestamp information structure
+ */
+
+typedef struct pps_info {
+ pps_seq_t assert_sequence; /* seq. num. of assert event */
+ pps_seq_t clear_sequence; /* seq. num. of clear event */
+ pps_timeu_t assert_tu; /* time of assert event */
+ pps_timeu_t clear_tu; /* time of clear event */
+ int current_mode; /* current mode bits */
+} pps_info_t;
+
+#define assert_timestamp assert_tu.tspec
+#define clear_timestamp clear_tu.tspec
+
+#define assert_timestamp_ntpfp assert_tu.ntpfp
+#define clear_timestamp_ntpfp clear_tu.ntpfp
+
+/*
+ * Parameter structure
+ */
+
+typedef struct pps_params {
+ int api_version; /* API version # */
+ int mode; /* mode bits */
+ pps_timeu_t assert_off_tu; /* offset compensation for assert */
+ pps_timeu_t clear_off_tu; /* offset compensation for clear */
+} pps_params_t;
+
+#define assert_offset assert_off_tu.tspec
+#define clear_offset clear_off_tu.tspec
+
+#define assert_offset_ntpfp assert_off_tu.ntpfp
+#define clear_offset_ntpfp clear_off_tu.ntpfp
+
+/*
+ *------ Here begins the implementation-specific part! ------
+ */
+
+#include <windows.h>
+#include <errno.h>
+#include <stddef.h> /* offsetof() */
+#include <io.h> /* _get_osfhandle() */
+
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP 45
+#endif
+
+typedef UINT_PTR pps_handle_t; /* pps handlebars */
+
+#ifndef inline
+#define inline __inline
+#endif
+
+/*
+ * ntpd on Windows is typically distributed as a binary as few users
+ * have the tools needed to build from source. Rather than build
+ * a single timepps.h for Windows which knows how to talk to all
+ * PPS implementations frozen in time as of compiling, this timepps.h
+ * allows one or more backend providers to be used by naming a DLL
+ * which exports the provider interfaces defined here.
+ */
+typedef enum ppsapi_magic_tag {
+ PPSAPI_MAGIC_UNIT = 0x70707355, /* ppsU */
+} ppsapi_magic;
+
+typedef struct {
+ struct pps_provider_tag *provider;
+ void * context;/* provider's unit pointer */
+ ppsapi_magic magic; /* to detect invalid handles */
+ pps_params_t params; /* PPS parameters set by user */
+} pps_unit_t;
+
+typedef void (*ppps_ntp_timestamp_from_counter)(
+ ntp_fp_t *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp
+ );
+
+typedef pps_handle_t (*pcreate_pps_handle)(
+ void * prov_context
+ );
+
+/*
+ * ppsapi_prov_init() - exported by backend DLLs
+ *
+ * Return value is pps capabilities available to PPSAPI consumers
+ * via time_pps_getcaps().
+ */
+#define PPSAPI_TIMEPPS_PROV_VER 2
+
+typedef int (WINAPI *pppsapi_prov_init)(
+ int ppsapi_timepps_prov_ver,
+ pcreate_pps_handle create_pps_handle,
+ ppps_ntp_timestamp_from_counter ntp_timestamp_from_counter,
+ char * short_name_buf,
+ size_t short_name_size,
+ char * full_name_buf,
+ size_t full_name_size
+ );
+
+typedef int (WINAPI *provtime_pps_create)(
+ HANDLE winhandle, /* user device handle */
+ pps_handle_t *phandle /* returned handle */
+ );
+
+typedef int (WINAPI *provtime_pps_destroy)(
+ pps_unit_t * unit,
+ void * context
+ );
+
+typedef int (WINAPI *provtime_pps_setparams)(
+ pps_unit_t * unit,
+ void * context,
+ const pps_params_t * params
+ );
+
+typedef int (WINAPI *provtime_pps_fetch)(
+ pps_unit_t * unit,
+ void * context,
+ const int tsformat,
+ pps_info_t * pinfo,
+ const struct timespec * timeout
+ );
+
+typedef int (WINAPI *provtime_pps_kcbind)(
+ pps_unit_t * unit,
+ void * context,
+ const int kernel_consumer,
+ const int edge,
+ const int tsformat
+ );
+
+typedef struct pps_provider_tag {
+ struct pps_provider_tag *next;
+ int caps;
+ char * short_name;
+ char * full_name;
+ provtime_pps_create ptime_pps_create;
+ provtime_pps_destroy ptime_pps_destroy;
+ provtime_pps_setparams ptime_pps_setparams;
+ provtime_pps_fetch ptime_pps_fetch;
+ provtime_pps_kcbind ptime_pps_kcbind;
+} ppsapi_provider;
+
+static ppsapi_provider * g_provider_list;
+static ppsapi_provider * g_curr_provider;
+
+
+static inline pps_handle_t
+internal_create_pps_handle(
+ void * prov_context
+ )
+{
+ pps_unit_t * punit;
+
+ if (NULL == g_curr_provider) {
+ fprintf(stderr, "create_pps_handle: provider backend called me outside time_pps_create\n");
+ punit = NULL;
+ } else
+ punit = malloc(sizeof(*punit));
+ if (punit != NULL) {
+ punit->provider = g_curr_provider;
+ punit->context = prov_context;
+ punit->magic = PPSAPI_MAGIC_UNIT;
+ memset(&punit->params, 0, sizeof(punit->params));
+ }
+ return (pps_handle_t)punit;
+}
+
+static inline pps_unit_t *
+unit_from_ppsapi_handle(
+ pps_handle_t handle
+ )
+{
+ pps_unit_t *punit;
+
+ punit = (pps_unit_t *)handle;
+ if (PPSAPI_MAGIC_UNIT != punit->magic)
+ punit = NULL;
+ return punit;
+}
+
+/*
+ * ntpd on Windows only looks to errno after finding
+ * GetLastError returns NO_ERROR. To accomodate its
+ * use of msyslog in portable code such as refclock_atom.c,
+ * this implementation always clears the Windows
+ * error code using SetLastError(NO_ERROR) when
+ * returning an errno. This is also a good idea
+ * for any non-ntpd clients as they should rely only
+ * the errno for PPSAPI functions.
+ */
+#define RETURN_PPS_ERRNO(e) \
+do { \
+ SetLastError(NO_ERROR); \
+ errno = (e); \
+ return -1; \
+} while (0)
+
+
+#ifdef OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER
+extern void pps_ntp_timestamp_from_counter(ntp_fp_t *, ULONGLONG, ULONGLONG);
+#else
+/*
+ * helper routine for serialpps.sys ioctl which returns
+ * performance counter "timestamp" as well as a system
+ * FILETIME timestamp. Converts one of the inputs to
+ * NTP fixed-point format.
+ *
+ * You will probably want to supply your own and #define
+ * OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER, as this stub
+ * converts only the low-resolution system timestamp.
+ *
+ * When implementing a provider, use the pointer to this
+ * conversion function supplied to your prov_init(), as
+ * the copy in your DLL will likely be the stub below,
+ * where you want the one provided by the PPSAPI client
+ * such as ntpd.
+ */
+static inline void
+pps_ntp_timestamp_from_counter(
+ ntp_fp_t *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp)
+{
+ ULONGLONG BiasedTimestamp;
+
+ /* convert from 100ns units to NTP fixed point format */
+
+ BiasedTimestamp = Timestamp - PPS_FILETIME_1970;
+ result->integral = PPS_JAN_1970 +
+ (unsigned)(BiasedTimestamp / PPS_HECTONANOSECONDS);
+ result->fractional =
+ (unsigned) ((BiasedTimestamp % PPS_HECTONANOSECONDS) *
+ (PPS_FRAC / PPS_HECTONANOSECONDS));
+}
+#endif
+
+
+static inline int
+load_pps_provider(
+ char * dllpath
+ )
+{
+ char short_name[16];
+ char full_name[64];
+ ppsapi_provider * prov;
+ HMODULE hmod;
+ pppsapi_prov_init pprov_init;
+
+ prov = malloc(sizeof(*prov));
+ if (NULL == prov)
+ return ENOMEM;
+
+ hmod = LoadLibrary(dllpath);
+ if (NULL == hmod) {
+ fprintf(stderr, "load_pps_provider: LoadLibrary(%s) error %u\n", dllpath, GetLastError());
+ free(prov);
+ return ENOENT;
+ }
+
+ pprov_init = (pppsapi_prov_init)GetProcAddress(hmod, "ppsapi_prov_init");
+ if (NULL == pprov_init) {
+ fprintf(stderr, "load_pps_provider: entrypoint ppsapi_prov_init not found in %s\n", dllpath);
+ free(prov);
+ FreeLibrary(hmod);
+ return EFAULT;
+ }
+
+ prov->caps = (*pprov_init)(PPSAPI_TIMEPPS_PROV_VER,
+ &internal_create_pps_handle,
+ &pps_ntp_timestamp_from_counter,
+ short_name, sizeof(short_name),
+ full_name, sizeof(full_name));
+
+ if (!prov->caps) {
+ free(prov);
+ FreeLibrary(hmod);
+ return EACCES;
+ }
+
+ prov->short_name = _strdup(short_name);
+ prov->full_name = _strdup(full_name);
+
+ if (NULL == prov->short_name || !prov->short_name[0]
+ || NULL == prov->full_name || !prov->full_name[0]) {
+
+ if (prov->short_name)
+ free(prov->short_name);
+ if (prov->full_name)
+ free(prov->full_name);
+ free(prov);
+ FreeLibrary(hmod);
+ return EINVAL;
+ }
+
+ prov->ptime_pps_create = (provtime_pps_create)
+ GetProcAddress(hmod, "prov_time_pps_create");
+ prov->ptime_pps_destroy = (provtime_pps_destroy)
+ GetProcAddress(hmod, "prov_time_pps_destroy");
+ prov->ptime_pps_setparams = (provtime_pps_setparams)
+ GetProcAddress(hmod, "prov_time_pps_setparams");
+ prov->ptime_pps_fetch = (provtime_pps_fetch)
+ GetProcAddress(hmod, "prov_time_pps_fetch");
+ prov->ptime_pps_kcbind = (provtime_pps_kcbind)
+ GetProcAddress(hmod, "prov_time_pps_kcbind");
+
+ if (NULL == prov->ptime_pps_create
+ || NULL == prov->ptime_pps_destroy
+ || NULL == prov->ptime_pps_setparams
+ || NULL == prov->ptime_pps_fetch
+ || NULL == prov->ptime_pps_kcbind) {
+
+ fprintf(stderr, "PPSAPI provider %s missing entrypoint\n",
+ prov->short_name);
+ free(prov->short_name);
+ free(prov->full_name);
+ free(prov);
+ FreeLibrary(hmod);
+ return EINVAL;
+ }
+
+ fprintf(stderr, "loaded PPSAPI provider %s caps 0x%x provider %p\n",
+ prov->full_name, prov->caps, prov);
+
+ prov->next = g_provider_list;
+ g_provider_list = prov;
+
+ return 0;
+}
+
+
+/*
+ * time_pps_create - create PPS handle from file descriptor
+ *
+ * This is the initial entrypoint of PPSAPI from the client. Note
+ * to maintain source compatibility with Unix, the input file
+ * descriptor really is a descriptor from the C runtime low-numbered
+ * descriptor namespace, though it may have been converted from a
+ * native Windows HANDLE using _open_osfhandle().
+ */
+static inline int
+time_pps_create(
+ int filedes,/* device file descriptor */
+ pps_handle_t * phandle /* returned handle */
+ )
+{
+ HANDLE winhandle;
+ char * dlls;
+ char * dll;
+ char * pch;
+ ppsapi_provider * prov;
+ pps_handle_t ppshandle;
+ int err;
+
+ if (NULL == phandle)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ winhandle = (HANDLE)_get_osfhandle(filedes);
+ fprintf(stderr, "time_pps_create(%d) got winhandle %p\n", filedes, winhandle);
+ if (INVALID_HANDLE_VALUE == winhandle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ /*
+ * For initial testing the list of PPSAPI backend
+ * providers is provided by the environment variable
+ * PPSAPI_DLLS, separated by semicolons such as
+ * PPSAPI_DLLS=c:\ntp\serial_ppsapi.dll;..\parport_ppsapi.dll
+ * There are a million better ways, such as a well-known
+ * registry key under which a value is created for each
+ * provider DLL installed, or even a platform-specific
+ * ntp.conf directive or command-line switch.
+ */
+ dlls = getenv("PPSAPI_DLLS");
+ if (dlls != NULL && NULL == g_provider_list) {
+ dlls = dll = _strdup(dlls);
+ fprintf(stderr, "getenv(PPSAPI_DLLS) gives %s\n", dlls);
+ } else
+ dlls = dll = NULL;
+
+ while (dll != NULL && dll[0]) {
+ pch = strchr(dll, ';');
+ if (pch != NULL)
+ *pch = 0;
+ err = load_pps_provider(dll);
+ if (err) {
+ fprintf(stderr, "load_pps_provider(%s) got errno %d\n", dll, err);
+ RETURN_PPS_ERRNO(err);
+ }
+ dll = (NULL == pch)
+ ? NULL
+ : pch + 1;
+ }
+
+ if (NULL != dlls)
+ free(dlls);
+ dlls = dll = NULL;
+
+ /*
+ * Hand off to each provider in turn until one returns a PPS
+ * handle or they've all declined.
+ */
+ for (prov = g_provider_list; prov != NULL; prov = prov->next) {
+ ppshandle = 0;
+ g_curr_provider = prov;
+ err = (*prov->ptime_pps_create)(winhandle, &ppshandle);
+ g_curr_provider = NULL;
+ fprintf(stderr, "%s prov_time_pps_create(%p) returned %d\n",
+ prov->short_name, winhandle, err);
+ if (!err && ppshandle) {
+ *phandle = ppshandle;
+ return 0;
+ }
+ }
+
+ fprintf(stderr, "PPSAPI provider list %p\n", g_provider_list);
+
+ RETURN_PPS_ERRNO(ENOEXEC);
+}
+
+
+/*
+ * release PPS handle
+ */
+
+static inline int
+time_pps_destroy(
+ pps_handle_t handle
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ err = (*punit->provider->ptime_pps_destroy)(punit, punit->context);
+
+ free(punit);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+/*
+ * set parameters for handle
+ */
+
+static inline int
+time_pps_setparams(
+ pps_handle_t handle,
+ const pps_params_t *params
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ /*
+ * Check for valid arguments and set parameters.
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == params)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ err = (*punit->provider->ptime_pps_setparams)(punit, punit->context, params);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+/*
+ * get parameters for handle
+ */
+
+static inline int
+time_pps_getparams(
+ pps_handle_t handle,
+ pps_params_t *params_buf
+ )
+{
+ pps_unit_t * punit;
+
+ /*
+ * Check for valid arguments and get parameters.
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == params_buf)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ *params_buf = punit->params;
+ return 0;
+}
+
+
+/*
+ * time_pps_getcap - get capabilities for handle
+ */
+static inline int
+time_pps_getcap(
+ pps_handle_t handle,
+ int *pmode
+ )
+{
+ pps_unit_t * punit;
+
+ /*
+ * Check for valid arguments and get capabilities.
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == pmode)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ *pmode = punit->provider->caps;
+ return 0;
+}
+
+/*
+ * Fetch timestamps
+ */
+
+static inline int
+time_pps_fetch(
+ pps_handle_t handle,
+ const int tsformat,
+ pps_info_t * pinfo,
+ const struct timespec * ptimeout
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ /*
+ * Check for valid arguments and fetch timestamps
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == pinfo)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ err = (*punit->provider->ptime_pps_fetch)(punit,
+ punit->context,
+ tsformat,
+ pinfo,
+ ptimeout);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+/*
+ * time_pps_kcbind - specify kernel consumer
+ *
+ * Not supported so far by Windows.
+ */
+
+static inline int
+time_pps_kcbind(
+ pps_handle_t handle,
+ const int kernel_consumer,
+ const int edge, const int tsformat
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ err = (*punit->provider->ptime_pps_kcbind)(
+ punit,
+ punit->context,
+ kernel_consumer,
+ edge,
+ tsformat);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+
+#endif /* TIMEPPS_H */
diff --git a/ports/winnt/include/unistd.h b/ports/winnt/include/unistd.h
new file mode 100644
index 000000000000..5e1599737300
--- /dev/null
+++ b/ports/winnt/include/unistd.h
@@ -0,0 +1,4 @@
+/**************************************************************
+ * Dummy Header for Unix to Windows NT portability
+ * Created for NTP package
+ **************************************************************/
diff --git a/ports/winnt/include/win32_io.h b/ports/winnt/include/win32_io.h
new file mode 100644
index 000000000000..8f67ca1d1896
--- /dev/null
+++ b/ports/winnt/include/win32_io.h
@@ -0,0 +1,7 @@
+#ifndef WIN32_IO_H
+#define WIN32_IO_H
+
+extern void InitSockets(void);
+extern void connection_reset_fix(SOCKET fd, sockaddr_u *addr);
+
+#endif /* WIN32_IO_H */
diff --git a/ports/winnt/instsrv/instsrv.c b/ports/winnt/instsrv/instsrv.c
new file mode 100644
index 000000000000..b3acc9f3921d
--- /dev/null
+++ b/ports/winnt/instsrv/instsrv.c
@@ -0,0 +1,461 @@
+/*
+ * File: instsrv.c
+ * Purpose: To install a new service and to insert registry entries.
+ *
+ */
+#ifndef __RPCASYNC_H__
+#define __RPCASYNC_H__ /* Skip asynch rpc inclusion */
+#endif
+
+#include <windows.h>
+#include <stdio.h>
+
+#define PERR(api) printf("\n%s: Error %d from %s on line %d", \
+ __FILE__, GetLastError(), api, __LINE__);
+
+#define MSG_FOR_ACCESS_DENIED "You aren't authorized to do this - please see your system Administrator"
+#define MSG_1_FOR_BAD_PATH "The fully qualified path name to the .exe must be given, and"
+#define MSG_2_FOR_BAD_PATH " the drive letter must be for a fixed disk (e.g., not a net drive)"
+
+SC_HANDLE schService;
+SC_HANDLE schSCManager;
+int ok2;
+
+VOID DisplayHelp(VOID);
+
+/* --------------------------------------------------------------------------------------- */
+
+int InstallService(LPCTSTR serviceName, LPCTSTR displayName, LPCTSTR serviceExe)
+{
+ LPCTSTR lpszBinaryPathName = serviceExe;
+ TCHAR lpszRootPathName[] ="?:\\";
+
+ if ( (':' != *(lpszBinaryPathName+1)) || ('\\' != *(lpszBinaryPathName+2)) )
+ { printf("\n%s",MSG_1_FOR_BAD_PATH);
+ printf("\n%s\n",MSG_2_FOR_BAD_PATH);
+ return 1;
+ }
+
+ #define DRIVE_TYPE_INDETERMINATE 0
+ #define ROOT_DIR_DOESNT_EXIST 1
+
+ *lpszRootPathName = *(lpszBinaryPathName+0) ;
+
+ switch ( GetDriveType(lpszRootPathName) )
+ {
+ case DRIVE_FIXED :
+ { // OK
+ break;
+ }
+ case ROOT_DIR_DOESNT_EXIST :
+ { printf("\n%s",MSG_1_FOR_BAD_PATH);
+ printf("\n the root directory where the .exe is specified to be must exist, and");
+ printf("\n%s\n",MSG_2_FOR_BAD_PATH);
+ return 1;
+ }
+ case DRIVE_TYPE_INDETERMINATE :
+ case DRIVE_REMOVABLE :
+ case DRIVE_REMOTE :
+ case DRIVE_CDROM :
+ case DRIVE_RAMDISK :
+ { printf("\n%s",MSG_1_FOR_BAD_PATH);
+ printf("\n%s\n",MSG_2_FOR_BAD_PATH);
+ return 1;
+ }
+ default :
+ { printf("\n%s",MSG_1_FOR_BAD_PATH);
+ printf("\n%s\n",MSG_2_FOR_BAD_PATH);
+ return 1;
+ }
+ }
+
+ if (INVALID_HANDLE_VALUE == CreateFile(lpszBinaryPathName,
+ GENERIC_READ,
+ FILE_SHARE_READ,
+ NULL,
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL))
+ {
+ printf("\n%s",MSG_1_FOR_BAD_PATH);
+ printf("\n the file must exist, and");
+ printf("\n%s\n",MSG_2_FOR_BAD_PATH);
+ return 1;
+ }
+
+ schService = CreateService(
+ schSCManager, // SCManager database
+ serviceName, // name of service
+ displayName, // name to display
+ SERVICE_ALL_ACCESS, // desired access
+ SERVICE_WIN32_OWN_PROCESS, // service type
+ SERVICE_AUTO_START, // start type
+ SERVICE_ERROR_NORMAL, // error control type
+ lpszBinaryPathName, // service's binary
+ NULL, // no load ordering group
+ NULL, // no tag identifier
+ NULL, // no dependencies
+ NULL, // Local System account
+ NULL); // null password
+
+ if (NULL == schService)
+ { switch (GetLastError())
+ {
+ case ERROR_ACCESS_DENIED :
+ { printf("\n%s",MSG_FOR_ACCESS_DENIED);
+ break;
+ }
+ case ERROR_SERVICE_EXISTS :
+ { printf("\nThe %s service is already installed",serviceName);
+ printf("\nRemove it first if you need to re-install a new version\n");
+ break;
+ }
+ default :
+ { PERR("CreateService");
+ }
+ }
+ return 1;
+ }
+ else
+
+ CloseServiceHandle(schService);
+ return 0;
+}
+
+/* --------------------------------------------------------------------------------------- */
+
+int RemoveService(LPCTSTR serviceName)
+{
+ {
+ #define SZ_ENUM_BUF 4096
+ ENUM_SERVICE_STATUS essServiceStatus[SZ_ENUM_BUF];
+ DWORD dwBufSize = sizeof(essServiceStatus);
+ DWORD dwBytesNeeded = 0;
+ DWORD dwServicesReturned = 0;
+ DWORD dwResumeHandle = 0;
+ DWORD dwI = 0;
+ BOOLEAN bFound = FALSE;
+
+ if (!EnumServicesStatus(schSCManager,
+ SERVICE_WIN32,
+ SERVICE_ACTIVE,
+ (LPENUM_SERVICE_STATUS)&essServiceStatus,
+ dwBufSize,
+ &dwBytesNeeded,
+ &dwServicesReturned,
+ &dwResumeHandle))
+ { switch (GetLastError())
+ {
+ case ERROR_ACCESS_DENIED :
+ { printf("\n%s",MSG_FOR_ACCESS_DENIED);
+ break;
+ }
+ default :
+ { PERR("EnumServicesStatus");
+ }
+ }
+ return 1;
+ }
+
+ for (dwI=0; dwI<dwServicesReturned; dwI++)
+ { if(0 == _stricmp(essServiceStatus[dwI].lpServiceName,serviceName))
+ { bFound = TRUE;
+ break;
+ }
+ }
+
+ if (bFound)
+ { printf("\nThe %s service cannot be removed until it has been stopped.",serviceName);
+ printf("\nTo stop the %s service, use the Stop button in the Control",serviceName);
+ printf("\n Panel Services applet\n");
+ return 1;
+ }
+ }
+
+ schService = OpenService(schSCManager,
+ serviceName,
+ SERVICE_ALL_ACCESS);
+ if (NULL == schService)
+ { switch (GetLastError())
+ {
+ case ERROR_ACCESS_DENIED :
+ { printf("\n%s",MSG_FOR_ACCESS_DENIED);
+ break;
+ }
+ case ERROR_SERVICE_DOES_NOT_EXIST :
+ { printf("\nThe %s service is not installed, so cannot be removed\n",serviceName);
+ break;
+ }
+ default :
+ { PERR("OpenService");
+ }
+ }
+ return 1;
+ }
+
+ if (DeleteService(schService))
+ { printf("\nDelete of Service \"Network Time Protocol\" was SUCCESSFUL\n");
+ return 0;
+ }
+ else
+ { switch (GetLastError())
+ {
+ case ERROR_ACCESS_DENIED :
+ { printf("\n%s",MSG_FOR_ACCESS_DENIED);
+ break;
+ }
+ default :
+ { PERR("DeleteService");
+ }
+ }
+ return 1;
+ }
+}
+
+/* --------------------------------------------------------------------------------------- */
+
+int addSourceToRegistry(LPSTR pszAppname, LPSTR pszMsgDLL)
+{
+ HKEY hk; /* registry key handle */
+ DWORD dwData;
+ BOOL bSuccess;
+ char regarray[200];
+ char *lpregarray = regarray;
+
+ /* When an application uses the RegisterEventSource or OpenEventLog
+ function to get a handle of an event log, the event loggging service
+ searches for the specified source name in the registry. You can add a
+ new source name to the registry by opening a new registry subkey
+ under the Application key and adding registry values to the new
+ subkey. */
+
+ strcpy(lpregarray, "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\");
+ strcat(lpregarray, pszAppname);
+ /* Create a new key for our application */
+ bSuccess = RegCreateKey(HKEY_LOCAL_MACHINE, lpregarray, &hk);
+ if(bSuccess != ERROR_SUCCESS)
+ {
+ PERR("RegCreateKey");
+ return 1;
+ }
+
+ /* Add the Event-ID message-file name to the subkey. */
+ bSuccess = RegSetValueEx(hk, /* subkey handle */
+ "EventMessageFile", /* value name */
+ 0, /* must be zero */
+ REG_EXPAND_SZ, /* value type */
+ (LPBYTE) pszMsgDLL, /* address of value data */
+ strlen(pszMsgDLL) + 1); /* length of value data */
+ if(bSuccess != ERROR_SUCCESS)
+ {
+ PERR("RegSetValueEx");
+ return 1;
+ }
+
+ /* Set the supported types flags and addit to the subkey. */
+ dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
+ EVENTLOG_INFORMATION_TYPE;
+ bSuccess = RegSetValueEx(hk, /* subkey handle */
+ "TypesSupported", /* value name */
+ 0, /* must be zero */
+ REG_DWORD, /* value type */
+ (LPBYTE) &dwData, /* address of value data */
+ sizeof(DWORD)); /* length of value data */
+ if(bSuccess != ERROR_SUCCESS)
+ {
+ PERR("RegSetValueEx");
+ return 1;
+ }
+ RegCloseKey(hk);
+ return 0;
+}
+
+/* --------------------------------------------------------------------------------------- */
+
+int addKeysToRegistry()
+
+{
+ HKEY hk; /* registry key handle */
+ BOOL bSuccess;
+ char myarray[200];
+ char *lpmyarray = myarray;
+ int arsize = 0;
+
+ /* now add the depends on service key */
+
+ /* Create a new key for our application */
+ bSuccess = RegCreateKey(HKEY_LOCAL_MACHINE,
+ "SYSTEM\\CurrentControlSet\\Services\\NTP", &hk);
+ if(bSuccess != ERROR_SUCCESS)
+ {
+ PERR("RegCreateKey");
+ return 1;
+ }
+
+ strcpy(lpmyarray,"TcpIp");
+ lpmyarray = lpmyarray + 6;
+ arsize = arsize + 6;
+ strcpy(lpmyarray,"Afd");
+ lpmyarray = lpmyarray + 4;
+ arsize = arsize + 4;
+ arsize = arsize + 2;
+ strcpy(lpmyarray,"\0\0");
+
+ bSuccess = RegSetValueEx(hk, /* subkey handle */
+ "DependOnService", /* value name */
+ 0, /* must be zero */
+ REG_MULTI_SZ, /* value type */
+ (LPBYTE) &myarray, /* address of value data */
+ arsize); /* length of value data */
+ if(bSuccess != ERROR_SUCCESS)
+ {
+ PERR("RegSetValueEx");
+ return 1;
+ }
+
+ RegCloseKey(hk);
+ return 0;
+}
+
+/* --------------------------------------------------------------------------------------- */
+
+int main(int argc, char *argv[])
+{
+ #define SZ_NAME_BUF 270 // 256 is max, add a little
+ UCHAR ucNameBuf[SZ_NAME_BUF] = "NTP";
+ LPTSTR lpszServName = (LPTSTR)&ucNameBuf;
+
+ UCHAR ucDNameBuf[SZ_NAME_BUF] = "Network Time Protocol";
+ LPTSTR lpszDispName = (LPTSTR)&ucDNameBuf;
+
+
+ UCHAR ucExeNBuf[SZ_NAME_BUF] = "";
+ LPTSTR lpszExeName = (LPTSTR)&ucExeNBuf;
+
+ BOOL bRemovingService = FALSE;
+ char *p;
+
+ int ok = 0;
+
+ // check if Win32s, if so, display notice and terminate
+ if( GetVersion() & 0x80000000 )
+ {
+ MessageBox( NULL,
+ "This application cannot run on Windows 3.1.\n"
+ "This application will now terminate.",
+ "NAMED",
+ MB_OK | MB_ICONSTOP | MB_SETFOREGROUND );
+ return( 1 );
+ }
+ if (argc == 2)
+ bRemovingService = (!stricmp(argv[1], "remove"));
+
+ if(!bRemovingService)
+ {
+
+
+ if (argc != 2)
+ {
+ DisplayHelp();
+ return(1);
+ }
+
+ p=argv[1];
+ if ( ('/' == *p)
+ || ('-' == *p) )
+ {
+ DisplayHelp();
+ return(1);
+ }
+
+
+ }
+
+ if (strlen(argv[1]) > 256)
+ {
+ printf("\nThe service name cannot be longer than 256 characters\n");
+ return(1);
+ }
+
+
+
+ bRemovingService = (!stricmp(argv[1], "remove"));
+ schSCManager = OpenSCManager(
+ NULL, // machine (NULL == local)
+ NULL, // database (NULL == default)
+ SC_MANAGER_ALL_ACCESS); // access required
+
+ if (NULL == schSCManager)
+ { switch (GetLastError())
+ {
+ case ERROR_ACCESS_DENIED :
+ { printf("\n%s",MSG_FOR_ACCESS_DENIED);
+ break;
+ }
+ default :
+ { PERR("OpenSCManager");
+ }
+ }
+ return (0);
+ }
+
+ if (bRemovingService)
+ {
+ ok = RemoveService(lpszServName);
+ }
+ else
+ {
+ /* get the exe name */
+ strcpy(lpszExeName,argv[1]);
+ ok = InstallService(lpszServName, lpszDispName, lpszExeName);
+ }
+
+ CloseServiceHandle(schSCManager);
+
+ if (!bRemovingService)
+ {
+ if (ok == 0)
+ { /* Set the Event-ID message-file name. */
+ ok = addSourceToRegistry("NTP", lpszExeName);
+ if (ok == 0)
+ ok = addKeysToRegistry();
+ else return ok;
+
+ if (ok == 0)
+ {
+ printf("\nThe \"Network Time Protocol\" service was successfully created.\n");
+ printf("\nDon't forget!!! You must now go to the Control Panel and");
+ printf("\n use the Services applet to change the account name and");
+ printf("\n password that the NTP Service will use when");
+ printf("\n it starts.");
+ printf("\nTo do this: use the Startup button in the Services applet,");
+ printf("\n and (for example) specify the desired account and");
+ printf("\n correct password.");
+ printf("\nAlso, use the Services applet to ensure this newly installed");
+ printf("\n service starts automatically on bootup.\n");
+ return 0;
+ }
+ }
+ else return ok;
+ }
+ return 0;
+}
+
+/* --------------------------------------------------------------------------------------- */
+
+VOID DisplayHelp(VOID)
+{
+ printf("Installs or removes the NTP service.\n");
+ printf("To install the NTP service,\n");
+ printf("type INSTSRV <path> \n");
+ printf("Where:\n");
+ printf(" path Absolute path to the NTP service, name.exe. You must\n");
+ printf(" use a fully qualified path and the drive letter must be for a\n");
+ printf(" fixed, local drive.\n\n");
+ printf("For example, INSTSRV i:\\winnt\\system32\\ntpd.exe\n");
+ printf("To remove the NTP service,\n");
+ printf("type INSTSRV remove \n");
+
+}
+
+/* EOF */
diff --git a/ports/winnt/libntp/MSG00001.bin b/ports/winnt/libntp/MSG00001.bin
new file mode 100644
index 000000000000..320ee54d1e2c
--- /dev/null
+++ b/ports/winnt/libntp/MSG00001.bin
Binary files differ
diff --git a/ports/winnt/libntp/SetSystemTime.c b/ports/winnt/libntp/SetSystemTime.c
new file mode 100644
index 000000000000..8cb43173f22e
--- /dev/null
+++ b/ports/winnt/libntp/SetSystemTime.c
@@ -0,0 +1,34 @@
+
+#include <config.h>
+
+#include "clockstuff.h"
+#include "ntp_stdlib.h"
+#include "ntp_unixtime.h"
+
+pset_tod_using set_tod_using = NULL;
+
+int
+ntp_set_tod(
+ struct timeval *tv,
+ void *tzp
+ )
+{
+ SYSTEMTIME st;
+ union {
+ FILETIME ft;
+ ULONGLONG ull;
+ } t;
+
+ UNUSED_ARG(tzp);
+
+ t.ull = FILETIME_1970 +
+ (ULONGLONG)tv->tv_sec * 10 * 1000 * 1000 +
+ (ULONGLONG)tv->tv_usec * 10;
+
+ if (!FileTimeToSystemTime(&t.ft, &st) || !SetSystemTime(&st)) {
+ msyslog(LOG_ERR, "SetSystemTime failed: %m");
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/ports/winnt/libntp/getclock.c b/ports/winnt/libntp/getclock.c
new file mode 100644
index 000000000000..68496bd53078
--- /dev/null
+++ b/ports/winnt/libntp/getclock.c
@@ -0,0 +1,63 @@
+/*
+ * getclock.c - Emulate Unix getclock(3) nanosecond interface for libntp/ntpd
+ */
+#include "config.h"
+
+#include "ntp_unixtime.h"
+#include "clockstuff.h"
+#include "ntp_stdlib.h"
+
+/*
+ * getclock() is in libntp. To use interpolation,
+ * ports/winnt/ntpd/nt_clockstuff.c overrides GetSystemTimeAsFileTime
+ * via the pointer get_sys_time_as_filetime.
+ */
+PGSTAFT get_sys_time_as_filetime;
+PGSTAFT pGetSystemTimePreciseAsFileTime;
+
+
+int
+getclock(
+ int clktyp,
+ struct timespec *ts
+ )
+{
+ union {
+ FILETIME ft;
+ ULONGLONG ull;
+ } uNow;
+
+ if (clktyp != TIMEOFDAY) {
+ TRACE(1, ("getclock() supports only TIMEOFDAY clktyp\n"));
+ errno = EINVAL;
+ return -1;
+ }
+
+ (*get_sys_time_as_filetime)(&uNow.ft);
+
+ /*
+ * Convert the hecto-nano second time to timespec format
+ */
+ uNow.ull -= FILETIME_1970;
+ ts->tv_sec = (time_t)( uNow.ull / HECTONANOSECONDS);
+ ts->tv_nsec = (long)(( uNow.ull % HECTONANOSECONDS) * 100);
+
+ return 0;
+}
+
+
+void
+init_win_precise_time(void)
+{
+ HANDLE hDll;
+ FARPROC pfn;
+
+ hDll = LoadLibrary("kernel32");
+ pfn = GetProcAddress(hDll, "GetSystemTimePreciseAsFileTime");
+ if (NULL != pfn) {
+ pGetSystemTimePreciseAsFileTime = (PGSTAFT)pfn;
+ get_sys_time_as_filetime = pGetSystemTimePreciseAsFileTime;
+ } else {
+ get_sys_time_as_filetime = &GetSystemTimeAsFileTime;
+ }
+}
diff --git a/ports/winnt/libntp/messages.h b/ports/winnt/libntp/messages.h
new file mode 100644
index 000000000000..475371169a2a
--- /dev/null
+++ b/ports/winnt/libntp/messages.h
@@ -0,0 +1,199 @@
+ /*
+ Microsoft Developer Support
+ Copyright (c) 1992 Microsoft Corporation
+
+ This file contains the message definitions for the Win32
+ syslog support messages for the nntp firewall
+-------------------------------------------------------------------------
+ HEADER SECTION
+
+ The header section defines names and language identifiers for use
+ by the message definitions later in this file. The MessageIdTypedef,
+ SeverityNames, FacilityNames, and LanguageNames keywords are
+ optional and not required.
+
+
+
+ The MessageIdTypedef keyword gives a typedef name that is used in a
+ type cast for each message code in the generated include file. Each
+ message code appears in the include file with the format: #define
+ name ((type) 0xnnnnnnnn) The default value for type is empty, and no
+ type cast is generated. It is the programmer's responsibility to
+ specify a typedef statement in the application source code to define
+ the type. The type used in the typedef must be large enough to
+ accomodate the entire 32-bit message code.
+
+
+
+ The SeverityNames keyword defines the set of names that are allowed
+ as the value of the Severity keyword in the message definition. The
+ set is delimited by left and right parentheses. Associated with each
+ severity name is a number that, when shifted left by 30, gives the
+ bit pattern to logical-OR with the Facility value and MessageId
+ value to form the full 32-bit message code. The default value of
+ this keyword is:
+
+ SeverityNames=(
+ Success=0x0
+ Informational=0x1
+ Warning=0x2
+ Error=0x3
+ )
+
+ Severity values occupy the high two bits of a 32-bit message code.
+ Any severity value that does not fit in two bits is an error. The
+ severity codes can be given symbolic names by following each value
+ with :name
+
+
+FacilityNames=(System=0x0:FACILITY_SYSTEM
+ Runtime=0x2:FACILITY_RUNTIME
+ Stubs=0x3:FACILITY_STUBS
+ Io=0x4:FACILITY_IO_ERROR_CODE
+ )
+
+ The FacilityNames keyword defines the set of names that are allowed
+ as the value of the Facility keyword in the message definition. The
+ set is delimited by left and right parentheses. Associated with each
+ facility name is a number that, when shift it left by 16 bits, gives
+ the bit pattern to logical-OR with the Severity value and MessageId
+ value to form the full 32-bit message code. The default value of
+ this keyword is:
+
+ FacilityNames=(
+ System=0x0FF
+ Application=0xFFF
+ )
+
+ Facility codes occupy the low order 12 bits of the high order
+ 16-bits of a 32-bit message code. Any facility code that does not
+ fit in 12 bits is an error. This allows for 4,096 facility codes.
+ The first 256 codes are reserved for use by the system software. The
+ facility codes can be given symbolic names by following each value
+ with :name
+
+
+ The LanguageNames keyword defines the set of names that are allowed
+ as the value of the Language keyword in the message definition. The
+ set is delimited by left and right parentheses. Associated with each
+ language name is a number and a file name that are used to name the
+ generated resource file that contains the messages for that
+ language. The number corresponds to the language identifier to use
+ in the resource table. The number is separated from the file name
+ with a colon. The initial value of LanguageNames is:
+
+ LanguageNames=(English=1:MSG00001)
+
+ Any new names in the source file which don't override the built-in
+ names are added to the list of valid languages. This allows an
+ application to support private languages with descriptive names.
+
+
+-------------------------------------------------------------------------
+ MESSAGE DEFINITION SECTION
+
+ Following the header section is the body of the Message Compiler
+ source file. The body consists of zero or more message definitions.
+ Each message definition begins with one or more of the following
+ statements:
+
+ MessageId = [number|+number]
+ Severity = severity_name
+ Facility = facility_name
+ SymbolicName = name
+
+ The MessageId statement marks the beginning of the message
+ definition. A MessageID statement is required for each message,
+ although the value is optional. If no value is specified, the value
+ used is the previous value for the facility plus one. If the value
+ is specified as +number then the value used is the previous value
+ for the facility, plus the number after the plus sign. Otherwise, if
+ a numeric value is given, that value is used. Any MessageId value
+ that does not fit in 16 bits is an error.
+
+ The Severity and Facility statements are optional. These statements
+ specify additional bits to OR into the final 32-bit message code. If
+ not specified they default to the value last specified for a message
+ definition. The initial values prior to processing the first message
+ definition are:
+
+ Severity=Success
+ Facility=Application
+
+ The value associated with Severity and Facility must match one of
+ the names given in the FacilityNames and SeverityNames statements in
+ the header section. The SymbolicName statement allows you to
+ associate a C/C++ symbolic constant with the final 32-bit message
+ code.
+ */
+//
+// Values are 32 bit values laid out as follows:
+//
+// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
+// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+// +---+-+-+-----------------------+-------------------------------+
+// |Sev|C|R| Facility | Code |
+// +---+-+-+-----------------------+-------------------------------+
+//
+// where
+//
+// Sev - is the severity code
+//
+// 00 - Success
+// 01 - Informational
+// 10 - Warning
+// 11 - Error
+//
+// C - is the Customer code flag
+//
+// R - is a reserved bit
+//
+// Facility - is the facility code
+//
+// Code - is the facility's status code
+//
+//
+// Define the facility codes
+//
+
+
+//
+// Define the severity codes
+//
+#define STATUS_SEVERITY_WARNING 0x2
+#define STATUS_SEVERITY_SUCCESS 0x0
+#define STATUS_SEVERITY_INFORMATIONAL 0x1
+#define STATUS_SEVERITY_ERROR 0x3
+
+
+//
+// MessageId: NTP_ERROR
+//
+// MessageText:
+//
+// %1
+//
+#define NTP_ERROR ((DWORD)0xC0000001L)
+
+//
+// MessageId: NTP_WARNING
+//
+// MessageText:
+//
+// %1
+//
+//
+#define NTP_WARNING ((DWORD)0x80000002L)
+
+//
+// MessageId: NTP_INFO
+//
+// MessageText:
+//
+// %1
+//
+//
+//
+//
+#define NTP_INFO ((DWORD)0x40000003L)
+
diff --git a/ports/winnt/libntp/messages.mc b/ports/winnt/libntp/messages.mc
new file mode 100644
index 000000000000..3a6bc7d22c0f
--- /dev/null
+++ b/ports/winnt/libntp/messages.mc
@@ -0,0 +1,161 @@
+; /*
+; Microsoft Developer Support
+; Copyright (c) 1992 Microsoft Corporation
+;
+; This file contains the message definitions for the Win32
+; syslog support messages for the nntp firewall
+
+;-------------------------------------------------------------------------
+; HEADER SECTION
+;
+; The header section defines names and language identifiers for use
+; by the message definitions later in this file. The MessageIdTypedef,
+; SeverityNames, FacilityNames, and LanguageNames keywords are
+; optional and not required.
+;
+;
+MessageIdTypedef=DWORD
+;
+; The MessageIdTypedef keyword gives a typedef name that is used in a
+; type cast for each message code in the generated include file. Each
+; message code appears in the include file with the format: #define
+; name ((type) 0xnnnnnnnn) The default value for type is empty, and no
+; type cast is generated. It is the programmer's responsibility to
+; specify a typedef statement in the application source code to define
+; the type. The type used in the typedef must be large enough to
+; accomodate the entire 32-bit message code.
+;
+;
+SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
+ Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
+ Warning=0x2:STATUS_SEVERITY_WARNING
+ Error=0x3:STATUS_SEVERITY_ERROR
+ )
+;
+; The SeverityNames keyword defines the set of names that are allowed
+; as the value of the Severity keyword in the message definition. The
+; set is delimited by left and right parentheses. Associated with each
+; severity name is a number that, when shifted left by 30, gives the
+; bit pattern to logical-OR with the Facility value and MessageId
+; value to form the full 32-bit message code. The default value of
+; this keyword is:
+;
+; SeverityNames=(
+; Success=0x0
+; Informational=0x1
+; Warning=0x2
+; Error=0x3
+; )
+;
+; Severity values occupy the high two bits of a 32-bit message code.
+; Any severity value that does not fit in two bits is an error. The
+; severity codes can be given symbolic names by following each value
+; with :name
+;
+;
+;FacilityNames=(System=0x0:FACILITY_SYSTEM
+; Runtime=0x2:FACILITY_RUNTIME
+; Stubs=0x3:FACILITY_STUBS
+; Io=0x4:FACILITY_IO_ERROR_CODE
+; )
+;
+; The FacilityNames keyword defines the set of names that are allowed
+; as the value of the Facility keyword in the message definition. The
+; set is delimited by left and right parentheses. Associated with each
+; facility name is a number that, when shift it left by 16 bits, gives
+; the bit pattern to logical-OR with the Severity value and MessageId
+; value to form the full 32-bit message code. The default value of
+; this keyword is:
+;
+; FacilityNames=(
+; System=0x0FF
+; Application=0xFFF
+; )
+;
+; Facility codes occupy the low order 12 bits of the high order
+; 16-bits of a 32-bit message code. Any facility code that does not
+; fit in 12 bits is an error. This allows for 4,096 facility codes.
+; The first 256 codes are reserved for use by the system software. The
+; facility codes can be given symbolic names by following each value
+; with :name
+;
+;
+; The LanguageNames keyword defines the set of names that are allowed
+; as the value of the Language keyword in the message definition. The
+; set is delimited by left and right parentheses. Associated with each
+; language name is a number and a file name that are used to name the
+; generated resource file that contains the messages for that
+; language. The number corresponds to the language identifier to use
+; in the resource table. The number is separated from the file name
+; with a colon. The initial value of LanguageNames is:
+;
+; LanguageNames=(English=1:MSG00001)
+;
+; Any new names in the source file which don't override the built-in
+; names are added to the list of valid languages. This allows an
+; application to support private languages with descriptive names.
+;
+;
+;-------------------------------------------------------------------------
+; MESSAGE DEFINITION SECTION
+;
+; Following the header section is the body of the Message Compiler
+; source file. The body consists of zero or more message definitions.
+; Each message definition begins with one or more of the following
+; statements:
+;
+; MessageId = [number|+number]
+; Severity = severity_name
+; Facility = facility_name
+; SymbolicName = name
+;
+; The MessageId statement marks the beginning of the message
+; definition. A MessageID statement is required for each message,
+; although the value is optional. If no value is specified, the value
+; used is the previous value for the facility plus one. If the value
+; is specified as +number then the value used is the previous value
+; for the facility, plus the number after the plus sign. Otherwise, if
+; a numeric value is given, that value is used. Any MessageId value
+; that does not fit in 16 bits is an error.
+;
+; The Severity and Facility statements are optional. These statements
+; specify additional bits to OR into the final 32-bit message code. If
+; not specified they default to the value last specified for a message
+; definition. The initial values prior to processing the first message
+; definition are:
+;
+; Severity=Success
+; Facility=Application
+;
+; The value associated with Severity and Facility must match one of
+; the names given in the FacilityNames and SeverityNames statements in
+; the header section. The SymbolicName statement allows you to
+; associate a C/C++ symbolic constant with the final 32-bit message
+; code.
+; */
+
+MessageId=0x1
+Severity=Error
+Facility=Application
+SymbolicName=NTP_ERROR
+Language=English
+%1
+.
+
+MessageId=0x2
+Severity=Warning
+Facility=Application
+SymbolicName=NTP_WARNING
+Language=English
+%1
+
+.
+MessageId=0x3
+Severity=Informational
+Facility=Application
+SymbolicName=NTP_INFO
+Language=English
+%1
+
+
+
diff --git a/ports/winnt/libntp/messages.rc b/ports/winnt/libntp/messages.rc
new file mode 100644
index 000000000000..0abcb0fa2c57
--- /dev/null
+++ b/ports/winnt/libntp/messages.rc
@@ -0,0 +1,2 @@
+LANGUAGE 0x9,0x1
+1 11 "MSG00001.bin"
diff --git a/ports/winnt/libntp/randfile.c b/ports/winnt/libntp/randfile.c
new file mode 100644
index 000000000000..7de80b80d6a4
--- /dev/null
+++ b/ports/winnt/libntp/randfile.c
@@ -0,0 +1,109 @@
+/*
+ * Make sure that there is a good source of random characters
+ * so that OpenSSL can work properly and securely.
+ */
+
+#include <config.h>
+#include <wincrypt.h>
+
+#include <stdio.h>
+
+unsigned int getrandom_chars(int desired, unsigned char *buf, int lenbuf);
+BOOL create_random_file(char *filename);
+
+BOOL
+init_randfile()
+{
+ FILE *rf;
+ char *randfile;
+ char *homedir;
+ char tmp[256];
+ /* See if the environmental variable RANDFILE is defined
+ * and the file exists
+ */
+ randfile = getenv("RANDFILE");
+ if (randfile != NULL) {
+ rf = fopen(randfile, "rb");
+ if (rf != NULL) {
+ fclose(rf);
+ return (TRUE);
+ }
+ else {
+ /* The environmental variable exists but not the file */
+ return (create_random_file(randfile));
+ }
+ }
+ /*
+ * If the RANDFILE environmental variable does not exist,
+ * see if the HOME enviromental variable exists and
+ * a .rnd file is in there.
+ */
+ homedir = getenv("HOME");
+ if (homedir != NULL &&
+ (strlen(homedir) + 5 /* \.rnd */) < sizeof(tmp)) {
+ snprintf(tmp, sizeof(tmp), "%s\\.rnd", homedir);
+ rf = fopen(tmp, "rb");
+ if (rf != NULL) {
+ fclose(rf);
+ return (TRUE);
+ }
+ else {
+ /* The HOME environmental variable exists but not the file */
+ return (create_random_file(tmp));
+ }
+ }
+ /*
+ * Final try. Look for it on the C:\ directory
+ * NOTE: This is a really bad place for it security-wise
+ * However, OpenSSL looks for it there if it can't find it elsewhere
+ */
+ rf = fopen("C:\\.rnd", "rb");
+ if (rf != NULL) {
+ fclose(rf);
+ return (TRUE);
+ }
+ /* The file does not exist */
+ return (create_random_file("C:\\.rnd"));
+}
+/*
+ * Routine to create the random file with 1024 random characters
+ */
+BOOL
+create_random_file(char *filename) {
+ FILE *rf;
+ int nchars;
+ unsigned char buf[1025];
+
+ nchars = getrandom_chars(1024, buf, sizeof(buf));
+ rf = fopen(filename, "wb");
+ if (rf == NULL)
+ return (FALSE);
+ fwrite(buf, sizeof(unsigned char), nchars, rf);
+ fclose(rf);
+ return (TRUE);
+}
+
+unsigned int
+getrandom_chars(int desired, unsigned char *buf, int lenbuf) {
+ HCRYPTPROV hcryptprov;
+ BOOL err;
+
+ if (buf == NULL || lenbuf <= 0 || desired > lenbuf)
+ return (0);
+ /*
+ * The first time we just try to acquire the context
+ */
+ err = CryptAcquireContext(&hcryptprov, NULL, NULL, PROV_RSA_FULL,
+ CRYPT_VERIFYCONTEXT);
+ if (!err){
+ return (0);
+ }
+ if (!CryptGenRandom(hcryptprov, desired, buf)) {
+ CryptReleaseContext(hcryptprov, 0);
+ return (0);
+ }
+
+ CryptReleaseContext(hcryptprov, 0);
+ return (desired);
+}
+
diff --git a/ports/winnt/libntp/setpriority.c b/ports/winnt/libntp/setpriority.c
new file mode 100644
index 000000000000..52ab78529422
--- /dev/null
+++ b/ports/winnt/libntp/setpriority.c
@@ -0,0 +1,76 @@
+#include <config.h>
+#include <stdio.h>
+#include <sys/resource.h> /* our private version */
+#include "ntp_stdlib.h"
+#include "ntp_syslog.h"
+#include "ntp_debug.h"
+#include "ntp_fp.h"
+#include "ntp.h"
+#include "clockstuff.h"
+
+
+/*
+ * setpriority
+ *
+ * to reduce the #ifdef forest in the portable code,
+ * we emulate the BSD setpriority interface:
+ *
+ * if (-1 == setpriority(PRIO_PROCESS, 0, NTP_PRIO))
+ * msyslog(LOG_ERR, "setpriority() error: %m");
+ *
+ * However, since the Windows port of ntpd has always raised its
+ * priority (to realtime if allowed, or silently downgraded to
+ * high by the system if not) with or without -N. Changing that
+ * now would endanger users who upgrade the binary without adding
+ * -N to its invocation. Instsrv assumes ntpd.exe is installed
+ * with no command-line arguments.
+ *
+ * This routine is used by utilities as well as ntpd itself, so
+ * it checks if the priority is already high or realtime and
+ * logs no complaints in that case, to avoid duplicating. ntpd
+ * will have raised the priority to one of those in
+ * init_winnt_time, while the utilities will rely on this
+ * code.
+ *
+ */
+
+int setpriority(
+ int which,
+ int who,
+ int prio
+ )
+{
+ BOOL success;
+ DWORD prio_class;
+
+ if (PRIO_PROCESS != which || who || NTP_PRIO != prio)
+ TRACE(1, ("windows setpriority() clone needs work.\n"));
+
+ prio_class = GetPriorityClass(GetCurrentProcess());
+
+ if (HIGH_PRIORITY_CLASS == prio_class ||
+ REALTIME_PRIORITY_CLASS == prio_class)
+ return 0;
+
+ success = SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
+
+ if (!success) {
+ msyslog(LOG_ERR, "Unable to raise priority: %m");
+ errno = EPERM;
+ return -1;
+ }
+
+ prio_class = GetPriorityClass(GetCurrentProcess());
+
+ if (REALTIME_PRIORITY_CLASS == prio_class)
+ msyslog(LOG_INFO, "Raised to realtime priority class");
+ else if (HIGH_PRIORITY_CLASS == prio_class)
+ msyslog(LOG_ERR, "Raised to high priority class, realtime "
+ "requires Increase Scheduling Priority "
+ "privilege (enabled with secpol.msc).");
+ else
+ msyslog(LOG_ERR, "Unexpected process priority class %d",
+ prio_class);
+
+ return 0;
+}
diff --git a/ports/winnt/libntp/syslog.c b/ports/winnt/libntp/syslog.c
new file mode 100644
index 000000000000..71c90c237ec3
--- /dev/null
+++ b/ports/winnt/libntp/syslog.c
@@ -0,0 +1,219 @@
+/*
+ * Copyright (C) 2001 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* From BIND 9 lib/isc/win32/: syslog.c,v 1.6 2002/08/03 01:34:14 mayer */
+
+#include <config.h>
+
+#include <stdio.h>
+#include <windows.h>
+#include <string.h>
+#include <stdlib.h>
+#include <syslog.h>
+
+#include <isc/strerror.h>
+#include <lib_strbuf.h>
+
+#include "ntp_stdlib.h"
+
+#include "messages.h"
+
+static HANDLE hAppLog = NULL;
+static FILE *log_stream;
+static int debug_level = 0;
+static char progname[51] = "NTP";
+static int logmask = 0;
+
+static struct dsn_c_pvt_sfnt {
+ int val;
+ const char *strval;
+} facilities[] = {
+ { LOG_KERN, "kern" },
+ { LOG_USER, "user" },
+ { LOG_MAIL, "mail" },
+ { LOG_DAEMON, "daemon" },
+ { LOG_AUTH, "auth" },
+ { LOG_SYSLOG, "syslog" },
+ { LOG_LPR, "lpr" },
+#ifdef LOG_NEWS
+ { LOG_NEWS, "news" },
+#endif
+#ifdef LOG_UUCP
+ { LOG_UUCP, "uucp" },
+#endif
+#ifdef LOG_CRON
+ { LOG_CRON, "cron" },
+#endif
+#ifdef LOG_AUTHPRIV
+ { LOG_AUTHPRIV, "authpriv" },
+#endif
+#ifdef LOG_FTP
+ { LOG_FTP, "ftp" },
+#endif
+ { LOG_LOCAL0, "local0"},
+ { LOG_LOCAL1, "local1"},
+ { LOG_LOCAL2, "local2"},
+ { LOG_LOCAL3, "local3"},
+ { LOG_LOCAL4, "local4"},
+ { LOG_LOCAL5, "local5"},
+ { LOG_LOCAL6, "local6"},
+ { LOG_LOCAL7, "local7"},
+ { 0, NULL }
+};
+
+#if 0
+BOOL
+isc_syslog_facilityfromstring(const char *str, int *facilityp) {
+ int i;
+
+ REQUIRE(str != NULL);
+ REQUIRE(facilityp != NULL);
+
+ for (i = 0 ; facilities[i].strval != NULL ; i++) {
+ if (strcasecmp(facilities[i].strval, str) == 0) {
+ *facilityp = facilities[i].val;
+ return (TRUE);
+ }
+ }
+ return (FALSE);
+}
+#endif
+/*
+ * Log to the NT Event Log
+ */
+void
+syslog(int level, const char *fmt, ...) {
+ va_list ap;
+ char buf[1024];
+ char *str[1];
+
+ str[0] = buf;
+
+ va_start(ap, fmt);
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+
+ /* Make sure that the channel is open to write the event */
+ if (hAppLog == NULL) {
+ openlog(progname, LOG_PID);
+ }
+ switch (level) {
+ case LOG_INFO:
+ case LOG_NOTICE:
+ case LOG_DEBUG:
+ ReportEvent(hAppLog, EVENTLOG_INFORMATION_TYPE, 0,
+ NTP_INFO, NULL, 1, 0, str, NULL);
+ break;
+ case LOG_WARNING:
+ ReportEvent(hAppLog, EVENTLOG_WARNING_TYPE, 0,
+ NTP_WARNING, NULL, 1, 0, str, NULL);
+ break;
+ default:
+ ReportEvent(hAppLog, EVENTLOG_ERROR_TYPE, 0,
+ NTP_ERROR, NULL, 1, 0, str, NULL);
+ break;
+ }
+}
+
+/*
+ * Initialize event logging
+ */
+void
+openlog(const char *name, int flags, ...) {
+ /* Get a handle to the Application event log */
+ hAppLog = RegisterEventSource(NULL, progname);
+ strlcpy(progname, name, sizeof(progname));
+}
+
+/*
+ * Close the Handle to the application Event Log
+ * We don't care whether or not we succeeded so ignore return values
+ * In fact if we failed then we would have nowhere to put the message
+ */
+void
+closelog() {
+ DeregisterEventSource(hAppLog);
+}
+
+/*
+ * Keep event logging synced with the current debug level
+ */
+void
+ModifyLogLevel(int level) {
+ debug_level = level;
+}
+/*
+ * Set the log priority mask to the given value.
+ * Return the previous priority mask
+ * Note that this setting is ignored in Win32
+ */
+int
+setlogmask(int maskpri) {
+ int temp = logmask;
+ logmask = maskpri;
+ return (temp);
+}
+
+/*
+ * Initialize logging for the port section of libbind.
+ * Piggyback onto stream given.
+ */
+void
+InitNTLogging(FILE *stream, int debug) {
+ log_stream = stream;
+ ModifyLogLevel(debug);
+}
+/*
+ * This function is for reporting errors to the application
+ * event log in case the regular syslog is not available
+ * mainly during startup. It should not be used under normal
+ * circumstances.
+ */
+void
+NTReportError(const char *name, const char *str) {
+ HANDLE hNTAppLog = NULL;
+ const char *buf[1];
+
+ buf[0] = str;
+
+ hNTAppLog = RegisterEventSource(NULL, name);
+
+ ReportEvent(hNTAppLog, EVENTLOG_ERROR_TYPE, 0,
+ NTP_ERROR, NULL, 1, 0, buf, NULL);
+
+ DeregisterEventSource(hNTAppLog);
+}
+
+
+/*
+ * ntp_strerror() - provide strerror()-compatible wrapper for libisc's
+ * isc__strerror(), which knows about Windows as well as
+ * C runtime error messages.
+ */
+
+char *
+ntp_strerror(
+ int code
+ )
+{
+ char * buf;
+
+ LIB_GETBUF(buf);
+ isc__strerror(code, buf, LIB_BUFLENGTH);
+
+ return buf;
+}
diff --git a/ports/winnt/libntp/termios.c b/ports/winnt/libntp/termios.c
new file mode 100644
index 000000000000..3fe4e4859c01
--- /dev/null
+++ b/ports/winnt/libntp/termios.c
@@ -0,0 +1,789 @@
+/* This file implements system calls that are not compatible with UNIX */
+/* Moved to libntp/termios.c */
+
+#include <config.h>
+#include <io.h>
+#include <stdio.h>
+
+#include "ntp.h"
+#include "ntp_tty.h"
+#include "lib_strbuf.h"
+#include "ntp_assert.h"
+#include "win32_io.h"
+
+#define MAX_SERIAL 255 /* COM1: - COM255: */
+
+typedef struct comhandles_tag {
+ HANDLE h;
+ size_t opens;
+ HANDLE * dupes;
+} comhandles;
+
+comhandles * hnds; /* handle/dupes array */
+size_t c_hnds; /* current array size */
+
+/*
+ * common_serial_open ensures duplicate opens of the same port
+ * work by duplicating the handle for the 2nd open, allowing
+ * refclock_atom to share a GPS refclock's comm port.
+ */
+HANDLE common_serial_open(
+ char * dev,
+ char ** pwindev
+ )
+{
+ char * windev;
+ HANDLE handle;
+ size_t unit;
+ size_t prev_c_hnds;
+ size_t opens;
+ char * pch;
+
+ /*
+ * This is odd, but we'll take any unix device path
+ * by looking for the initial '/' and strip off everything
+ * before the final digits, then translate that to COM__:
+ * maintaining backward compatibility with NTP practice of
+ * mapping unit 0 to the nonfunctional COM0:
+ *
+ * To ease the job of taking the windows COMx: device names
+ * out of reference clocks, we'll also work with those
+ * equanimously.
+ */
+
+ TRACE(1, ("common_serial_open given %s\n", dev));
+
+ pch = NULL;
+ if ('/' == dev[0]) {
+ pch = dev + strlen(dev) - 1;
+
+ if (isdigit(pch[0])) {
+ while (isdigit(pch[0])) {
+ pch--;
+ }
+ pch++;
+ }
+ TRACE(1, ("common_serial_open skipped to ending digits leaving %s\n", pch));
+ } else if ('c' == tolower(dev[0])
+ && 'o' == tolower(dev[1])
+ && 'm' == tolower(dev[2])) {
+ pch = dev + 3;
+ TRACE(1, ("common_serial_open skipped COM leaving %s\n", pch));
+ }
+
+ if (!pch || !isdigit(pch[0])) {
+ TRACE(1, ("not a digit: %s\n", pch ? pch : "[NULL]"));
+ return INVALID_HANDLE_VALUE;
+ }
+
+ if (1 != sscanf(pch, "%d", &unit)
+ || unit > MAX_SERIAL
+ || unit < 0) {
+ TRACE(1, ("sscanf failure of %s\n", pch));
+ return INVALID_HANDLE_VALUE;
+ }
+
+
+ if (c_hnds < unit + 1) {
+ prev_c_hnds = c_hnds;
+ c_hnds = unit + 1;
+ /* round up to closest multiple of 4 to avoid churn */
+ c_hnds = (c_hnds + 3) & ~3;
+ hnds = erealloc_zero(hnds, c_hnds * sizeof(hnds[0]),
+ prev_c_hnds * sizeof(hnds[0]));
+ }
+
+ if (NULL == hnds[unit].h) {
+ NTP_ENSURE(0 == hnds[unit].opens);
+ LIB_GETBUF(windev);
+ snprintf(windev, LIB_BUFLENGTH, "\\\\.\\COM%d", unit);
+ TRACE(1, ("windows device %s\n", windev));
+ *pwindev = windev;
+ hnds[unit].h =
+ CreateFile(
+ windev,
+ GENERIC_READ | GENERIC_WRITE,
+ 0, /* sharing prohibited */
+ NULL, /* default security */
+ OPEN_EXISTING,
+ FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,
+ NULL);
+ if (INVALID_HANDLE_VALUE == hnds[unit].h)
+ hnds[unit].h = NULL;
+ }
+
+ if (NULL != hnds[unit].h) {
+ /* think handle = dup(hnds[unit].h); */
+ DuplicateHandle(
+ GetCurrentProcess(),
+ hnds[unit].h,
+ GetCurrentProcess(),
+ &handle,
+ 0,
+ FALSE,
+ DUPLICATE_SAME_ACCESS
+ );
+ hnds[unit].opens++;
+ opens = hnds[unit].opens;
+ hnds[unit].dupes = erealloc(hnds[unit].dupes, opens *
+ sizeof(hnds[unit].dupes[0]));
+ hnds[unit].dupes[opens - 1] = handle;
+ return handle;
+ }
+
+ return INVALID_HANDLE_VALUE;
+}
+
+
+/*
+ * closeserial() is used in place of close by ntpd refclock I/O for ttys
+ */
+int
+closeserial(int fd)
+{
+ HANDLE h;
+ BOOL found;
+ size_t u;
+ size_t d;
+
+ h = (HANDLE)_get_osfhandle(fd);
+ if (INVALID_HANDLE_VALUE == h) {
+ errno = EBADF;
+ return -1;
+ }
+
+ d = 0; /* silence potent. uninit. warning */
+ found = FALSE;
+ for (u = 0; u < c_hnds; u++) {
+ for (d = 0; d < hnds[u].opens; d++) {
+ if (hnds[u].dupes[d] == h) {
+ found = TRUE;
+ break;
+ }
+ }
+ if (found)
+ break;
+ }
+ if (found) {
+ hnds[u].opens--;
+ if (d < hnds[u].opens)
+ memmove(&hnds[u].dupes[d],
+ &hnds[u].dupes[d + 1],
+ hnds[u].opens - d *
+ sizeof(hnds[u].dupes[d]));
+ if (0 == hnds[u].opens) {
+ CloseHandle(hnds[u].h);
+ hnds[u].h = NULL;
+ }
+ }
+
+ return close(fd);
+}
+
+/*
+ * isserialhandle() -- check if a handle is a COM port handle
+ */
+int isserialhandle(
+ HANDLE h
+ )
+{
+ size_t u;
+ size_t d;
+
+
+ for (u = 0; u < c_hnds; u++)
+ for (d = 0; d < hnds[u].opens; d++)
+ if (hnds[u].dupes[d] == h)
+ return TRUE;
+ return FALSE;
+}
+
+
+/*
+ * tty_open - open serial port for refclock special uses
+ *
+ * This routine opens a serial port for and returns the
+ * file descriptor if success and -1 if failure.
+ */
+int tty_open(
+ char *dev, /* device name pointer */
+ int access, /* O_RDWR */
+ int mode /* unused */
+ )
+{
+ HANDLE Handle;
+ char * windev;
+
+ /*
+ * open communication port handle
+ */
+ windev = NULL;
+ Handle = common_serial_open(dev, &windev);
+ windev = (windev)
+ ? windev
+ : dev;
+
+ if (Handle == INVALID_HANDLE_VALUE) {
+ msyslog(LOG_ERR, "tty_open: device %s CreateFile error: %m", windev);
+ errno = EMFILE; /* lie, lacking conversion from GetLastError() */
+ return -1;
+ }
+
+ return (int)_open_osfhandle((int)Handle, _O_TEXT);
+}
+
+
+/*
+ * refclock_open - open serial port for reference clock
+ *
+ * This routine opens a serial port for I/O and sets default options. It
+ * returns the file descriptor or -1 indicating failure.
+ */
+int refclock_open(
+ char * dev, /* device name pointer */
+ u_int speed, /* serial port speed (code) */
+ u_int flags /* line discipline flags */
+ )
+{
+ char * windev;
+ HANDLE h;
+ COMMTIMEOUTS timeouts;
+ DCB dcb;
+ DWORD dwEvtMask;
+ int fd;
+ int translate;
+
+ /*
+ * open communication port handle
+ */
+ windev = NULL;
+ h = common_serial_open(dev, &windev);
+ windev = (windev) ? windev : dev;
+
+ if (INVALID_HANDLE_VALUE == h) {
+ SAVE_ERRNO(
+ msyslog(LOG_ERR, "CreateFile(%s) error: %m",
+ windev);
+ )
+ return -1;
+ }
+
+ /* Change the input/output buffers to be large. */
+ if (!SetupComm(h, 1024, 1024)) {
+ SAVE_ERRNO(
+ msyslog(LOG_ERR, "SetupComm(%s) error: %m",
+ windev);
+ )
+ return -1;
+ }
+
+ dcb.DCBlength = sizeof(dcb);
+
+ if (!GetCommState(h, &dcb)) {
+ SAVE_ERRNO(
+ msyslog(LOG_ERR,
+ "GetCommState(%s) error: %m",
+ windev);
+ )
+ return -1;
+ }
+
+ switch (speed) {
+
+ case B300:
+ dcb.BaudRate = 300;
+ break;
+
+ case B1200:
+ dcb.BaudRate = 1200;
+ break;
+
+ case B2400:
+ dcb.BaudRate = 2400;
+ break;
+
+ case B4800:
+ dcb.BaudRate = 4800;
+ break;
+
+ case B9600:
+ dcb.BaudRate = 9600;
+ break;
+
+ case B19200:
+ dcb.BaudRate = 19200;
+ break;
+
+ case B38400:
+ dcb.BaudRate = 38400;
+ break;
+
+ case B57600:
+ dcb.BaudRate = 57600;
+ break;
+
+ case B115200:
+ dcb.BaudRate = 115200;
+ break;
+
+ default:
+ msyslog(LOG_ERR, "%s unsupported bps code %u", windev,
+ speed);
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return -1;
+ }
+
+ dcb.fBinary = TRUE;
+ dcb.fParity = TRUE;
+ dcb.fOutxCtsFlow = 0;
+ dcb.fOutxDsrFlow = 0;
+ dcb.fDtrControl = DTR_CONTROL_ENABLE;
+ dcb.fDsrSensitivity = 0;
+ dcb.fTXContinueOnXoff = TRUE;
+ dcb.fOutX = 0;
+ dcb.fInX = 0;
+ dcb.fErrorChar = 0;
+ dcb.fNull = 0;
+ dcb.fRtsControl = RTS_CONTROL_DISABLE;
+ dcb.fAbortOnError = 0;
+ dcb.ByteSize = 8;
+ dcb.StopBits = ONESTOPBIT;
+ dcb.Parity = NOPARITY;
+ dcb.ErrorChar = 0;
+ dcb.EofChar = 0;
+ if (LDISC_RAW & flags)
+ dcb.EvtChar = 0;
+ else
+ dcb.EvtChar = '\r';
+
+ if (!SetCommState(h, &dcb)) {
+ SAVE_ERRNO(
+ msyslog(LOG_ERR, "SetCommState(%s) error: %m",
+ windev);
+ )
+ return -1;
+ }
+
+ /* watch out for CR (dcb.EvtChar) as well as the CD line */
+ dwEvtMask = EV_RLSD;
+ if (LDISC_RAW & flags)
+ dwEvtMask |= EV_RXCHAR;
+ else
+ dwEvtMask |= EV_RXFLAG;
+ if (!SetCommMask(h, dwEvtMask)) {
+ SAVE_ERRNO(
+ msyslog(LOG_ERR, "SetCommMask(%s) error: %m",
+ windev);
+ )
+ return -1;
+ }
+
+ /* configure the handle to never block */
+ timeouts.ReadIntervalTimeout = MAXDWORD;
+ timeouts.ReadTotalTimeoutMultiplier = 0;
+ timeouts.ReadTotalTimeoutConstant = 0;
+ timeouts.WriteTotalTimeoutMultiplier = 0;
+ timeouts.WriteTotalTimeoutConstant = 0;
+
+ if (!SetCommTimeouts(h, &timeouts)) {
+ SAVE_ERRNO(
+ msyslog(LOG_ERR,
+ "Device %s SetCommTimeouts error: %m",
+ windev);
+ )
+ return -1;
+ }
+
+ translate = (LDISC_RAW & flags)
+ ? 0
+ : _O_TEXT;
+ fd = _open_osfhandle((int)h, translate);
+ /* refclock_open() long returned 0 on failure, avoid it. */
+ if (0 == fd) {
+ fd = _dup(0);
+ _close(0);
+ }
+
+ return fd;
+}
+
+
+int
+ioctl_tiocmget(
+ HANDLE h,
+ int *pi
+ )
+{
+ DWORD dw;
+
+ if (!GetCommModemStatus(h, &dw)) {
+ errno = ENOTTY;
+ return -1;
+ }
+
+ *pi = ((dw & MS_CTS_ON) ? TIOCM_CTS : 0)
+ | ((dw & MS_DSR_ON) ? TIOCM_DSR : 0)
+ | ((dw & MS_RLSD_ON) ? TIOCM_CAR : 0)
+ | ((dw & MS_RING_ON) ? TIOCM_RI : 0);
+
+ return 0;
+}
+
+
+int
+ioctl_tiocmset(
+ HANDLE h,
+ int *pi
+ )
+{
+ BOOL failed;
+ int result;
+
+ failed = !EscapeCommFunction(
+ h,
+ (*pi & TIOCM_RTS)
+ ? SETRTS
+ : CLRRTS
+ );
+
+ if (!failed)
+ failed = !EscapeCommFunction(
+ h,
+ (*pi & TIOCM_DTR)
+ ? SETDTR
+ : CLRDTR
+ );
+
+ if (failed) {
+ errno = ENOTTY;
+ result = -1;
+ } else
+ result = 0;
+
+ return result;
+}
+
+
+int
+ioctl(
+ int fd,
+ int op,
+ int *pi
+ )
+{
+ HANDLE h;
+ int result;
+ int modctl;
+
+ h = (HANDLE)_get_osfhandle(fd);
+
+ if (INVALID_HANDLE_VALUE == h) {
+ /* errno already set */
+ return -1;
+ }
+
+ switch (op) {
+
+ case TIOCMGET:
+ result = ioctl_tiocmget(h, pi);
+ break;
+
+ case TIOCMSET:
+ result = ioctl_tiocmset(h, pi);
+ break;
+
+ case TIOCMBIC:
+ result = ioctl_tiocmget(h, &modctl);
+ if (result < 0)
+ return result;
+ modctl &= ~(*pi);
+ result = ioctl_tiocmset(h, &modctl);
+ break;
+
+ case TIOCMBIS:
+ result = ioctl_tiocmget(h, &modctl);
+ if (result < 0)
+ return result;
+ modctl |= *pi;
+ result = ioctl_tiocmset(h, &modctl);
+ break;
+
+ default:
+ errno = EINVAL;
+ result = -1;
+ }
+
+ return result;
+}
+
+
+int
+tcsetattr(
+ int fd,
+ int optional_actions,
+ const struct termios * tios
+ )
+{
+ DCB dcb;
+ HANDLE h;
+
+ UNUSED_ARG(optional_actions);
+
+ h = (HANDLE)_get_osfhandle(fd);
+
+ if (INVALID_HANDLE_VALUE == h) {
+ /* errno already set */
+ return -1;
+ }
+
+ dcb.DCBlength = sizeof(dcb);
+ if (!GetCommState(h, &dcb)) {
+ errno = ENOTTY;
+ return -1;
+ }
+
+ switch (max(tios->c_ospeed, tios->c_ispeed)) {
+
+ case B300:
+ dcb.BaudRate = 300;
+ break;
+
+ case B1200:
+ dcb.BaudRate = 1200;
+ break;
+
+ case B2400:
+ dcb.BaudRate = 2400;
+ break;
+
+ case B4800:
+ dcb.BaudRate = 4800;
+ break;
+
+ case B9600:
+ dcb.BaudRate = 9600;
+ break;
+
+ case B19200:
+ dcb.BaudRate = 19200;
+ break;
+
+ case B38400:
+ dcb.BaudRate = 38400;
+ break;
+
+ case B57600:
+ dcb.BaudRate = 57600;
+ break;
+
+ case B115200:
+ dcb.BaudRate = 115200;
+ break;
+
+ default:
+ msyslog(LOG_ERR, "unsupported serial baud rate");
+ errno = EINVAL;
+ return -1;
+ }
+
+ switch (tios->c_cflag & CSIZE) {
+
+ case CS5:
+ dcb.ByteSize = 5;
+ break;
+
+ case CS6:
+ dcb.ByteSize = 6;
+ break;
+
+ case CS7:
+ dcb.ByteSize = 7;
+ break;
+
+ case CS8:
+ dcb.ByteSize = 8;
+ break;
+
+ default:
+ msyslog(LOG_ERR, "unsupported serial word size");
+ errno = EINVAL;
+ return FALSE;
+ }
+
+ if (PARENB & tios->c_cflag) {
+ dcb.fParity = TRUE;
+ dcb.Parity = (tios->c_cflag & PARODD)
+ ? ODDPARITY
+ : EVENPARITY;
+ } else {
+ dcb.fParity = FALSE;
+ dcb.Parity = NOPARITY;
+ }
+
+ dcb.StopBits = (CSTOPB & tios->c_cflag)
+ ? TWOSTOPBITS
+ : ONESTOPBIT;
+
+ if (!SetCommState(h, &dcb)) {
+ errno = ENOTTY;
+ return -1;
+ }
+
+ return 0;
+}
+
+
+int
+tcgetattr(
+ int fd,
+ struct termios *tios
+ )
+{
+ DCB dcb;
+ HANDLE h;
+
+ h = (HANDLE)_get_osfhandle(fd);
+
+ if (INVALID_HANDLE_VALUE == h) {
+ /* errno already set */
+ return -1;
+ }
+
+ dcb.DCBlength = sizeof(dcb);
+
+ if (!GetCommState(h, &dcb)) {
+ errno = ENOTTY;
+ return -1;
+ }
+
+ /* Set c_ispeed & c_ospeed */
+
+ switch (dcb.BaudRate) {
+
+ case 300:
+ tios->c_ispeed = tios->c_ospeed = B300;
+ break;
+
+ case 1200:
+ tios->c_ispeed = tios->c_ospeed = B1200;
+ break;
+
+ case 2400:
+ tios->c_ispeed = tios->c_ospeed = B2400;
+ break;
+
+ case 4800:
+ tios->c_ispeed = tios->c_ospeed = B4800;
+ break;
+
+ case 9600:
+ tios->c_ispeed = tios->c_ospeed = B9600;
+ break;
+
+ case 19200:
+ tios->c_ispeed = tios->c_ospeed = B19200;
+ break;
+
+ case 38400:
+ tios->c_ispeed = tios->c_ospeed = B38400;
+ break;
+
+ case 57600:
+ tios->c_ispeed = tios->c_ospeed = B57600;
+ break;
+
+ case 115200:
+ tios->c_ispeed = tios->c_ospeed = B115200;
+ break;
+
+ default:
+ tios->c_ispeed = tios->c_ospeed = B9600;
+ }
+
+
+ switch (dcb.ByteSize) {
+ case 5:
+ tios->c_cflag = CS5;
+ break;
+
+ case 6:
+ tios->c_cflag = CS6;
+ break;
+
+ case 7:
+ tios->c_cflag = CS7;
+ break;
+
+ case 8:
+ default:
+ tios->c_cflag = CS8;
+ }
+
+ if (dcb.fParity) {
+ tios->c_cflag |= PARENB;
+
+ if (ODDPARITY == dcb.Parity)
+ tios->c_cflag |= PARODD;
+ }
+
+ if (TWOSTOPBITS == dcb.StopBits)
+ tios->c_cflag |= CSTOPB;
+
+ tios->c_iflag = 0;
+ tios->c_lflag = 0;
+ tios->c_line = 0;
+ tios->c_oflag = 0;
+
+ return 0;
+}
+
+
+int
+tcflush(
+ int fd,
+ int mode
+ )
+{
+ HANDLE h;
+ BOOL success;
+ DWORD flags;
+ int result;
+
+ h = (HANDLE)_get_osfhandle(fd);
+
+ if (INVALID_HANDLE_VALUE == h) {
+ /* errno already set */
+ return -1;
+ }
+
+ switch (mode) {
+
+ case TCIFLUSH:
+ flags = PURGE_RXCLEAR;
+ break;
+
+ case TCOFLUSH:
+ flags = PURGE_TXABORT;
+ break;
+
+ case TCIOFLUSH:
+ flags = PURGE_RXCLEAR | PURGE_TXABORT;
+ break;
+
+ default:
+ errno = EINVAL;
+ return -1;
+ }
+
+ success = PurgeComm(h, flags);
+
+ if (success)
+ result = 0;
+ else {
+ errno = ENOTTY;
+ result = -1;
+ }
+
+ return result;
+}
+
diff --git a/ports/winnt/libntp/util_clockstuff.c b/ports/winnt/libntp/util_clockstuff.c
new file mode 100644
index 000000000000..e4bd0de3dd24
--- /dev/null
+++ b/ports/winnt/libntp/util_clockstuff.c
@@ -0,0 +1,26 @@
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "ntp_syslog.h"
+#include "ntp_stdlib.h"
+#include "ntp_unixtime.h"
+#include "clockstuff.h"
+
+int
+gettimeofday(
+ struct timeval * tv,
+ void * ignored
+ )
+{
+ struct timespec ts;
+
+ UNUSED_ARG(ignored);
+
+ getclock(TIMEOFDAY, &ts);
+
+ tv->tv_sec = ts.tv_sec;
+ tv->tv_usec = ts.tv_nsec / 10;
+
+ return 0;
+}
diff --git a/ports/winnt/libntp/win32_io.c b/ports/winnt/libntp/win32_io.c
new file mode 100644
index 000000000000..9e7a86179853
--- /dev/null
+++ b/ports/winnt/libntp/win32_io.c
@@ -0,0 +1,81 @@
+/* This file implements i/o calls that are specific to Windows */
+
+#include <config.h>
+#include <stdio.h>
+#include "ntp_fp.h"
+#include "ntp_net.h"
+#include "ntp_stdlib.h"
+#include "ntp_syslog.h"
+#include "win32_io.h"
+#include <isc/win32os.h>
+
+/*
+ * Define this macro to control the behavior of connection
+ * resets on UDP sockets. See Microsoft KnowledgeBase Article Q263823
+ * for details.
+ * Based on that article, it is surprising that a much newer winsock2.h
+ * does not define SIO_UDP_CONNRESET (the one that comes with VS 2008).
+ * NOTE: This requires that Windows 2000 systems install Service Pack 2
+ * or later.
+ */
+#ifndef SIO_UDP_CONNRESET
+#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
+#endif
+
+void
+InitSockets(
+ void
+ )
+{
+ WORD wVersionRequested;
+ WSADATA wsaData;
+ int err;
+
+ /* Need Winsock 2.0 or better */
+ wVersionRequested = MAKEWORD(2, 0);
+
+ err = WSAStartup(wVersionRequested, &wsaData);
+ if ( err != 0 ) {
+ SetLastError(err);
+ mfprintf(stderr, "No usable winsock: %m\n");
+ SetLastError(err);
+ msyslog(LOG_ERR, "No usable winsock: %m");
+ exit(1);
+ }
+}
+
+/*
+ * Windows 2000 systems incorrectly cause UDP sockets using WASRecvFrom
+ * to not work correctly, returning a WSACONNRESET error when a WSASendTo
+ * fails with an "ICMP port unreachable" response and preventing the
+ * socket from using the WSARecvFrom in subsequent operations.
+ * The function below fixes this, but requires that Windows 2000
+ * Service Pack 2 or later be installed on the system. NT 4.0
+ * systems are not affected by this and work correctly.
+ * See Microsoft Knowledge Base Article Q263823 for details of this.
+ */
+void
+connection_reset_fix(
+ SOCKET fd,
+ sockaddr_u * addr
+ )
+{
+ DWORD dw;
+ BOOL bNewBehavior = FALSE;
+ DWORD status;
+
+ /*
+ * disable bad behavior using IOCTL: SIO_UDP_CONNRESET
+ * NT 4.0 has no problem
+ */
+ if (isc_win32os_majorversion() >= 5) {
+ status = WSAIoctl(fd, SIO_UDP_CONNRESET, &bNewBehavior,
+ sizeof(bNewBehavior), NULL, 0,
+ &dw, NULL, NULL);
+ if (SOCKET_ERROR == status)
+ msyslog(LOG_ERR,
+ "connection_reset_fix() failed for address %s: %m",
+ stoa(addr));
+ }
+}
+
diff --git a/ports/winnt/ntpd/hopf_PCI_io.c b/ports/winnt/ntpd/hopf_PCI_io.c
new file mode 100644
index 000000000000..a1ba200f1171
--- /dev/null
+++ b/ports/winnt/ntpd/hopf_PCI_io.c
@@ -0,0 +1,335 @@
+/*
+ * hopf_PCI_io.c
+ * Read data from a hopf PCI clock using the ATLSoft WinNT driver.
+ *
+ * Date: 21.03.2000 Revision: 01.10
+ *
+ * Copyright (C) 1999, 2000 by Bernd Altmeier altmeier@ATLSoft.de
+ *
+ */
+
+/*
+ * Ignore nonstandard extension warning.
+ * This happens when including winioctl.h
+ */
+#pragma warning(disable: 4201)
+#define _FILESYSTEMFSCTL_
+
+#include <config.h>
+#include <windows.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <winioctl.h>
+
+#include "ntp_stdlib.h"
+#include "hopf_PCI_io.h"
+
+
+#define ATL_PASSTHROUGH_READ_TOSIZE (3 * sizeof(ULONG))
+#define ATL_PASSTHROUGH_READ_FROMSIZE 0
+#define IOCTL_ATLSOFT_PASSTHROUGH_READ CTL_CODE( \
+ FILE_DEVICE_UNKNOWN, \
+ 0x805, \
+ METHOD_BUFFERED, \
+ FILE_ANY_ACCESS)
+
+
+HANDLE hDevice = NULL; // this is the handle to the PCI Device
+
+HANDLE hRdEvent;
+OVERLAPPED Rdoverlapped;
+OVERLAPPED * pRdOverlapped;
+
+ULONG iobuffer[256];
+DWORD cbReturned;
+BOOL HaveBoard = FALSE;
+
+struct {
+ ULONG region;
+ ULONG offset;
+ ULONG count;
+} io_params;
+
+
+BOOL
+OpenHopfDevice(void)
+{
+ OSVERSIONINFO VersionInfo;
+ ULONG deviceNumber;
+ CHAR deviceName[255];
+
+ VersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&VersionInfo);
+ switch (VersionInfo.dwPlatformId) {
+
+ case VER_PLATFORM_WIN32_WINDOWS: // Win95/98
+ return FALSE; // "NTP does not support Win 95-98."
+ break;
+
+ case VER_PLATFORM_WIN32_NT: // WinNT
+ deviceNumber = 0;
+ snprintf(deviceName, sizeof(deviceName),
+ "\\\\.\\hclk6039%d", deviceNumber + 1);
+ hDevice = CreateFile(
+ deviceName,
+ GENERIC_WRITE | GENERIC_READ,
+ FILE_SHARE_WRITE | FILE_SHARE_READ,
+ NULL,
+ OPEN_EXISTING,
+ FILE_FLAG_DELETE_ON_CLOSE | FILE_FLAG_OVERLAPPED,
+ NULL);
+ break;
+
+ default:
+ hDevice = INVALID_HANDLE_VALUE;
+ break;
+ } // end switch
+
+ if (INVALID_HANDLE_VALUE == hDevice) // the system didn't return a handle
+ return FALSE; //"A handle to the driver could not be obtained properly"
+
+ // an event to be used for async transfers
+ hRdEvent = CreateEvent(
+ NULL,
+ TRUE,
+ FALSE,
+ NULL);
+
+ if (INVALID_HANDLE_VALUE == hRdEvent)
+ return FALSE; // the system didn't return a handle
+
+ pRdOverlapped = &Rdoverlapped;
+ pRdOverlapped->hEvent = hRdEvent;
+
+ HaveBoard = TRUE; // board installed and we have access
+
+ return TRUE;
+} // end of OpenHopfDevice()
+
+
+BOOL
+CloseHopfDevice(void)
+{
+ CloseHandle(hRdEvent);// When done, close the handle to the driver
+
+ return CloseHandle(hDevice);
+} // end of CloseHopfDevice()
+
+
+void
+ReadHopfDevice(void)
+{
+ if (!HaveBoard)
+ return;
+
+ DeviceIoControl(
+ hDevice,
+ IOCTL_ATLSOFT_PASSTHROUGH_READ,
+ &io_params,
+ ATL_PASSTHROUGH_READ_TOSIZE,
+ iobuffer,
+ ATL_PASSTHROUGH_READ_FROMSIZE
+ + io_params.count * sizeof(ULONG),
+ &cbReturned,
+ pRdOverlapped
+ );
+}
+
+
+#ifdef NOTUSED
+void
+GetHardwareData(
+ LPDWORD Data32,
+ WORD Ofs
+ )
+{
+ io_params.region = 1;
+ io_params.offset = Ofs;
+ io_params.count = 1;
+ ReadHopfDevice();
+ *Data32 = iobuffer[0];
+}
+#endif /* NOTUSED */
+
+
+void
+GetHopfTime(
+ LPHOPFTIME Data,
+ DWORD Offset
+ )
+{
+ io_params.region = 1;
+ io_params.offset = Offset;
+ io_params.count = 4;
+
+ ReadHopfDevice();
+
+ Data->wHour = 0;
+ Data->wMinute = 0;
+ Data->wSecond = 0;
+ while (iobuffer[0] >= 60 * 60 * 1000) {
+ iobuffer[0] = iobuffer[0] - 60 * 60 * 1000;
+ Data->wHour++;
+ }
+ while (iobuffer[0] >= 60 * 1000) {
+ iobuffer[0] = iobuffer[0] - 60 * 1000;
+ Data->wMinute++;
+ }
+ while (iobuffer[0] >= 1000) {
+ iobuffer[0] = iobuffer[0] - 1000;
+ Data->wSecond++;
+ }
+ Data->wMilliseconds = LOWORD(iobuffer[0]);
+ Data->wDay = HIBYTE(HIWORD(iobuffer[1]));
+ Data->wMonth = LOBYTE(HIWORD(iobuffer[1]));
+ Data->wYear = LOWORD(iobuffer[1]);
+ Data->wDayOfWeek = HIBYTE(HIWORD(iobuffer[2]));
+ if (Data->wDayOfWeek == 7) // Dow Korrektur
+ Data->wDayOfWeek = 0;
+
+ io_params.region = 1;
+ io_params.offset += 0x08;
+ io_params.count = 1;
+
+ ReadHopfDevice();
+
+ Data->wStatus = LOBYTE(HIWORD(iobuffer[0]));
+}
+
+
+#ifdef NOTUSED
+void
+GetHopfLocalTime(
+ LPHOPFTIME Data
+ )
+{
+ DWORD Offset = 0;
+
+ GetHopfTime(Data, Offset);
+}
+#endif /* NOTUSED */
+
+
+void
+GetHopfSystemTime(
+ LPHOPFTIME Data
+ )
+{
+ DWORD Offset = 0x10;
+
+ GetHopfTime(Data,Offset);
+}
+
+
+#ifdef NOTUSED
+void
+GetSatData(
+ LPSATSTAT Data
+ )
+{
+ io_params.region = 1;
+ io_params.offset = 0xb0;
+ io_params.count = 5;
+
+ ReadHopfDevice();
+
+ Data->wVisible = HIBYTE(HIWORD(iobuffer[0]));
+ Data->wMode = LOBYTE(LOWORD(iobuffer[0]));
+ Data->wSat0 = HIBYTE(HIWORD(iobuffer[1]));
+ Data->wRat0 = LOBYTE(HIWORD(iobuffer[1]));
+ Data->wSat1 = HIBYTE(LOWORD(iobuffer[1]));
+ Data->wRat1 = LOBYTE(LOWORD(iobuffer[1]));
+ Data->wSat2 = HIBYTE(HIWORD(iobuffer[2]));
+ Data->wRat2 = LOBYTE(HIWORD(iobuffer[2]));
+ Data->wSat3 = HIBYTE(LOWORD(iobuffer[2]));
+ Data->wRat3 = LOBYTE(LOWORD(iobuffer[2]));
+ Data->wSat4 = HIBYTE(HIWORD(iobuffer[3]));
+ Data->wRat4 = LOBYTE(HIWORD(iobuffer[3]));
+ Data->wSat5 = HIBYTE(LOWORD(iobuffer[3]));
+ Data->wRat5 = LOBYTE(LOWORD(iobuffer[3]));
+ Data->wSat6 = HIBYTE(HIWORD(iobuffer[4]));
+ Data->wRat6 = LOBYTE(HIWORD(iobuffer[4]));
+ Data->wSat7 = HIBYTE(LOWORD(iobuffer[4]));
+ Data->wRat7 = LOBYTE(LOWORD(iobuffer[4]));
+}
+
+
+void
+GetDiffTime(
+ LPLONG Data
+ )
+{
+ io_params.region = 1;
+ io_params.offset = 0x0c;
+ io_params.count = 1;
+
+ ReadHopfDevice();
+
+ *Data = iobuffer[0];
+}
+
+
+void
+GetPosition(
+ LPGPSPOS Data
+ )
+{
+ io_params.region = 1;
+ io_params.offset = 0x90; // Positionsdaten Länge
+ io_params.count = 1;
+
+ ReadHopfDevice();
+
+ Data->wLongitude = iobuffer[0]; //in Millisekunden
+ io_params.region = 1;
+ io_params.offset = 0xa0; // Positionsdaten Breite
+ io_params.count = 1;
+
+ ReadHopfDevice();
+
+ Data->wLatitude = iobuffer[0];
+ Data->wAltitude = 0;
+}
+
+
+void
+GetHardwareVersion(
+ LPCLOCKVER Data
+ )
+{
+ int i;
+
+ io_params.region = 1;
+ io_params.offset = 0x50;
+ io_params.count = 12;
+
+ ReadHopfDevice();
+
+ Data->cVersion[0] = '\0';
+ iobuffer[13] = 0;
+ for (i = 0; i < 13; i++) {
+ Data->cVersion[i * 4 ] = HIBYTE(HIWORD(iobuffer[i]));
+ Data->cVersion[i * 4 + 1] = LOBYTE(HIWORD(iobuffer[i]));
+ Data->cVersion[i * 4 + 2] = HIBYTE(LOWORD(iobuffer[i]));
+ Data->cVersion[i * 4 + 3] = LOBYTE(LOWORD(iobuffer[i]));
+ }
+}
+
+
+void
+GetDCFAntenne(
+ LPDCFANTENNE Data
+ )
+{
+ io_params.region = 1;
+ io_params.offset = 0xcc;
+ io_params.count = 1;
+
+ ReadHopfDevice();
+ Data->bStatus1 = HIBYTE(HIWORD(iobuffer[0]));
+ Data->bStatus = LOBYTE(HIWORD(iobuffer[0]));
+ Data->wAntValue = LOWORD(iobuffer[0]);
+}
+#endif /* NOTUSED */
+
diff --git a/ports/winnt/ntpd/nt_clockstuff.c b/ports/winnt/ntpd/nt_clockstuff.c
new file mode 100644
index 000000000000..907c9f4ee3e0
--- /dev/null
+++ b/ports/winnt/ntpd/nt_clockstuff.c
@@ -0,0 +1,1748 @@
+/* Windows NT Clock Routines
+ *
+ * Created by Sven Dietrich sven@inter-yacht.com
+ *
+ * New interpolation scheme by Dave Hart <davehart@davehart.com> in
+ * February 2009 overcomes 500us-1ms inherent jitter with the older
+ * scheme, first identified by Peter Rosin (nee Ekberg)
+ * <peda@lysator.liu.se> in 2003 [Bug 216].
+ *
+ * Note: The Windows port of ntpd uses the C99-snprintf replacement for
+ * (v)snprintf(), also used by msyslog(), which does not understand the
+ * printf format specifier %I64d, only the more common %lld. With the
+ * minimum supported compiler raised to Visual C++ 2005 in ntp-dev in
+ * August 2011, all MS C runtime routines also understand %lld and %llu.
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <sys/resource.h> /* our private version */
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 /* VS 2005 */
+#include <intrin.h> /* for __rdtsc() */
+#endif
+
+#ifdef HAVE_PPSAPI
+#include <timepps.h>
+/*
+ * ports/winnt/include/timepps.h defines EOPNOTSUPP for compatibility
+ * with PPSAPI on other platforms. ports/winnt/include/isc/net.h has
+ * #define EOPNOTSUPP WSAEOPNOTSUPP, so to avoid a macro redefinition
+ * warning undefine it.
+ */
+#undef EOPNOTSUPP
+#endif /* HAVE_PPSAPI */
+
+#include "ntp_stdlib.h"
+#include "ntp_unixtime.h"
+#include "ntp_timer.h"
+#include "ntp_assert.h"
+#include "ntp_leapsec.h"
+#include "clockstuff.h"
+#include "ntservice.h"
+#include "ntpd.h"
+#include "ntpd-opts.h"
+
+extern double sys_residual; /* residual from previous adjustment */
+
+/*
+ * Include code to possibly modify the MM timer while the service is active.
+ */
+
+/*
+ * Whether or not MM timer modifications takes place is still controlled
+ * by the variable below which is initialized by a default value but
+ * might be changed depending on a command line switch.
+ */
+static int modify_mm_timer = MM_TIMER_LORES;
+
+#define MM_TIMER_INTV 1 /* the interval we'd want to set the MM timer to [ms] */
+
+static UINT wTimerRes;
+
+BOOL init_randfile();
+
+static long last_Adj = 0;
+
+#define LS_CORR_INTV_SECS 2 /* seconds to apply leap second correction */
+#define LS_CORR_INTV ( 1000ul * LS_CORR_INTV_SECS )
+#define LS_CORR_LIMIT ( 250ul ) // quarter second
+
+typedef union ft_ull {
+ FILETIME ft;
+ ULONGLONG ull;
+ LONGLONG ll;
+ LARGE_INTEGER li;
+} FT_ULL;
+
+/* leap second stuff */
+static FT_ULL ls_ft;
+static DWORD ls_time_adjustment;
+
+static BOOL winnt_time_initialized = FALSE;
+static BOOL winnt_use_interpolation = FALSE;
+static unsigned clock_thread_id;
+
+
+void WINAPI GetInterpTimeAsFileTime(LPFILETIME pft);
+static void StartClockThread(void);
+static void tune_ctr_freq(LONGLONG, LONGLONG);
+void StopClockThread(void);
+void atexit_revert_mm_timer(void);
+void win_time_stepped(void);
+
+static HANDLE clock_thread = NULL;
+static HANDLE TimerThreadExitRequest = NULL;
+
+/*
+ * interp_time estimates time in 100ns units
+ * based on a performance counter value given.
+ * The 2nd parameter indicates if this is
+ * part of a current time-of-day calculation.
+ */
+ULONGLONG interp_time(ULONGLONG, BOOL);
+
+/*
+ * add_counter_time_pair is called by the
+ * high priority clock thread with a new
+ * sample.
+ */
+void add_counter_time_pair(ULONGLONG, LONGLONG);
+
+/*
+ * globals used by the above two functions to
+ * implement the counter/time history
+ */
+#define BASELINES_TOT 256
+#define BASELINES_USED 64
+
+static volatile int newest_baseline = 0;
+static volatile int newest_baseline_gen = 0;
+static ULONGLONG baseline_counts[BASELINES_TOT] = {0};
+static LONGLONG baseline_times[BASELINES_TOT] = {0};
+
+#define CLOCK_BACK_THRESHOLD 100 /* < 10us unremarkable */
+static ULONGLONG clock_backward_max = CLOCK_BACK_THRESHOLD;
+static int clock_backward_count;
+
+/**
+ * A flag set on Windows versions which ignore small time adjustments.
+ *
+ * Windows Vista and Windows 7 ignore TimeAdjustment less than 16.
+ * @note Has to be checked for Windows Server 2008/2012 and Windows 8.
+ * Ref: http://support.microsoft.com/kb/2537623, bug #2328
+ */
+static BOOL os_ignores_small_adjustment;
+
+/*
+ * clockperiod is the period used for SetSystemTimeAdjustment
+ * slewing calculations but does not necessarily correspond
+ * to the precision of the OS clock. Prior to Windows Vista
+ * (6.0) the two were identical. In 100ns units.
+ */
+static DWORD clockperiod;
+
+/*
+ * os_clock_precision is the observed precision of the OS
+ * clock, meaning the increment between discrete values. This
+ * is currently calculated once at startup. 100ns units.
+ */
+static ULONGLONG os_clock_precision;
+
+/*
+ * NomPerfCtrFreq is from QueryPerformanceFrequency and is the
+ * number of performance counter beats per second. PerfCtrFreq
+ * starts from NomPerfCtrFreq but is maintained using a sliding
+ * window average based on actual performance counter behavior,
+ * to allow us to better tolerate powersaving measures that
+ * alter the effective frequency of the processor cycle counter
+ * (TSC) which sometimes underlies QueryPerformanceCounter.
+ *
+ * Note that the OS is unlikely to be so subtle in its internal
+ * scheduling of waitable timers, presumably done using the
+ * performance counter. Therefore our calculations for
+ * interpolated time should be based on PerfCtrFreq but our
+ * calculations for SetWaitableTimer should assume the OS will
+ * convert from FILETIME 100ns units to performance counter
+ * beats using the nominal frequency.
+ */
+
+volatile ULONGLONG PerfCtrFreq = 0;
+ ULONGLONG NomPerfCtrFreq = 0;
+
+/*
+ * If we're using RDTSC beating at the same rate as
+ * QueryPerformanceCounter, there is a systemic
+ * offset we need to account for when using
+ * counterstamps from serialpps.sys, which are
+ * always from QPC (actually KeQueryPerformanceCounter).
+ */
+static LONGLONG QPC_offset = 0;
+
+/*
+ * Substitute RDTSC for QueryPerformanceCounter()?
+ */
+static int use_pcc = -1;
+
+/*
+ * Restrict threads that call QPC/RDTSC to one CPU?
+ */
+static int lock_interp_threads = -1;
+
+/*
+ * ppm_per_adjust_unit is parts per million effect on the OS
+ * clock per slewing adjustment unit per second. Per haps.
+ */
+static DOUBLE ppm_per_adjust_unit;
+
+/*
+ * wintickadj emulates the functionality provided by unix tickadj,
+ * providing a baseline clock correction if needed to get the
+ * clock within a few hundred PPM of correct frequency.
+ */
+static long wintickadj;
+
+static void choose_interp_counter(void);
+static int is_qpc_built_on_pcc(void);
+
+/*
+ * performance counter frequency observations
+ */
+#define TUNE_CTR_DEPTH 3 /* running avg depth */
+
+static HANDLE ctr_freq_timer = INVALID_HANDLE_VALUE;
+static ULONGLONG tune_ctr_freq_max_interval;
+static unsigned tune_ctr_period;
+void start_ctr_freq_timer(ULONGLONG now_time);
+void reset_ctr_freq_timer(ULONGLONG when, ULONGLONG now);
+void reset_ctr_freq_timer_abs(ULONGLONG when);
+
+/* round a Windows time to the next bottom of the second */
+
+#define ROUND_TO_NEXT_SEC_BOTTOM(t) \
+do { \
+ (t) += 3 * HECTONANOSECONDS / 2 - 1; \
+ (t) /= HECTONANOSECONDS; \
+ (t) *= HECTONANOSECONDS; \
+ (t) -= HECTONANOSECONDS / 2; \
+} while (0)
+
+/*
+ * NT native time format is 100's of nanoseconds since 1601-01-01.
+ * Helpers for converting between "hectonanoseconds" and the
+ * performance counter scale from which interpolated time is
+ * derived.
+ */
+#define HNS2PERF(hns) ((hns) * PerfCtrFreq / HECTONANOSECONDS)
+#define PERF2HNS(ctr) ((ctr) * HECTONANOSECONDS / PerfCtrFreq)
+
+
+#if defined(_MSC_VER) && _MSC_VER >= 1400 /* VS 2005 */
+#define get_pcc() __rdtsc()
+#else
+/*
+ * something like this can be used for a compiler without __rdtsc()
+ */
+ULONGLONG __forceinline
+get_pcc(void)
+{
+ /* RDTSC returns in EDX:EAX, same as C compiler */
+ __asm {
+ RDTSC
+ }
+}
+#endif
+
+
+/*
+ * perf_ctr() returns the current performance counter value,
+ * from QueryPerformanceCounter or RDTSC.
+ */
+ULONGLONG WINAPI
+perf_ctr(void)
+{
+ FT_ULL ft;
+
+ if (use_pcc)
+ return get_pcc();
+ else {
+ QueryPerformanceCounter(&ft.li);
+ return ft.ull;
+ }
+}
+
+
+/*
+ * init_small_adjustment
+ *
+ * Set variable os_ignores_small_adjustment
+ *
+ */
+static void init_small_adjustment(void)
+{
+ OSVERSIONINFO vi;
+ memset(&vi, 0, sizeof(vi));
+ vi.dwOSVersionInfoSize = sizeof(vi);
+
+ if (!GetVersionEx(&vi)) {
+ msyslog(LOG_WARNING, "GetVersionEx failed with error code %d.", GetLastError());
+ os_ignores_small_adjustment = FALSE;
+ return;
+ }
+
+ if (vi.dwMajorVersion == 6 && vi.dwMinorVersion == 1) {
+ // Windows 7 and Windows Server 2008 R2
+ //
+ // Windows 7 is documented as affected.
+ // Windows Server 2008 R2 is assumed affected.
+ os_ignores_small_adjustment = TRUE;
+ } else if (vi.dwMajorVersion == 6 && vi.dwMinorVersion == 0) {
+ // Windows Vista and Windows Server 2008
+ //
+ // Windows Vista is documented as affected.
+ // Windows Server 2008 is assumed affected.
+ os_ignores_small_adjustment = TRUE;
+ } else {
+ os_ignores_small_adjustment = FALSE;
+ }
+}
+
+
+/*
+ * choose_interp_counter - select between QueryPerformanceCounter and
+ * the x86 processor cycle counter (TSC).
+ */
+static void
+choose_interp_counter(void)
+{
+ const char * ntpd_pcc_freq_text;
+ int qpc_built_on_pcc;
+
+ /*
+ * Regardless of whether we actually use RDTSC, first determine
+ * if QueryPerformanceCounter is built on it, so that we can
+ * decide whether it's prudent to lock QPC-consuming threads to
+ * a particular CPU.
+ */
+ qpc_built_on_pcc = is_qpc_built_on_pcc();
+ lock_interp_threads = qpc_built_on_pcc;
+
+ /*
+ * It's time to make some more permanent knobs,
+ * but for right now the RDTSC aka PCC dance on x86 is:
+ *
+ * 1. With none of these variables defined, only QPC
+ * is used because there is no reliable way to
+ * detect counter frequency variation after ntpd
+ * startup implemented.
+ * 2. We need a better knob, but for now if you know
+ * your RDTSC / CPU frequency is invariant, set
+ * NTPD_PCC and assuming your QPC is based on the
+ * PCC as well, RDTSC will be substituted.
+ * 3. More forcefully, you can jam in a desired exact
+ * processor frequency, expressed in cycles per
+ * second by setting NTPD_PCC_FREQ=398125000, for
+ * example, if yor actual known CPU frequency is
+ * 398.125 MHz, and NTPD_PCC doesn't work because
+ * QueryPerformanceCounter is implemented using
+ * another counter. It is very easy to make ntpd
+ * fall down if the NTPD_PCC_FREQ value isn't very
+ * close to the observed RDTSC units per second.
+ *
+ * Items 2 and 3 could probably best be combined into one
+ * new windows-specific command line switch such as
+ * ntpd --pcc
+ * or
+ * ntpd --pcc=398125000
+ *
+ * They are currently tied to Windows because that is
+ * the only ntpd port with its own interpolation, and
+ * to x86/x64 because no one has ported the Windows
+ * ntpd port to the sole remaining alternative, Intel
+ * Itanium.
+ */
+ if (HAVE_OPT(PCCFREQ))
+ ntpd_pcc_freq_text = OPT_ARG(PCCFREQ);
+ else
+ ntpd_pcc_freq_text = getenv("NTPD_PCC_FREQ");
+
+ if (!HAVE_OPT(USEPCC)
+ && NULL == ntpd_pcc_freq_text
+ && NULL == getenv("NTPD_PCC")) {
+ use_pcc = 0;
+ return;
+ }
+
+ if (!qpc_built_on_pcc && NULL == ntpd_pcc_freq_text) {
+ use_pcc = 0;
+ return;
+ }
+
+ use_pcc = 1;
+ if (ntpd_pcc_freq_text != NULL)
+ sscanf(ntpd_pcc_freq_text,
+ "%llu",
+ &NomPerfCtrFreq);
+
+ NLOG(NLOG_CLOCKINFO)
+ msyslog(LOG_INFO,
+ "using processor cycle counter "
+ "%.3f MHz",
+ NomPerfCtrFreq / 1e6);
+ return;
+}
+
+
+/*
+ * is_qpc_built_on_pcc - test if QueryPerformanceCounter runs at the
+ * same rate as the processor cycle counter (TSC).
+ */
+static int
+is_qpc_built_on_pcc(void)
+{
+ LONGLONG offset;
+ FT_ULL ft1;
+ FT_ULL ft2;
+ FT_ULL ft3;
+ FT_ULL ft4;
+ FT_ULL ft5;
+
+ NTP_REQUIRE(NomPerfCtrFreq != 0);
+
+ QueryPerformanceCounter(&ft1.li);
+ ft2.ull = get_pcc();
+ Sleep(1);
+ QueryPerformanceCounter(&ft3.li);
+ Sleep(1);
+ ft4.ull = get_pcc();
+ Sleep(1);
+ QueryPerformanceCounter(&ft5.li);
+
+ offset = ft2.ull - ft1.ull;
+ ft3.ull += offset;
+ ft5.ull += offset;
+
+ if (ft2.ull <= ft3.ull &&
+ ft3.ull <= ft4.ull &&
+ ft4.ull <= ft5.ull) {
+
+ QPC_offset = offset;
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+
+/*
+ * Request Multimedia Timer
+ */
+void
+set_mm_timer(
+ int timerres
+ )
+{
+ modify_mm_timer = timerres;
+}
+
+/*
+ * adj_systime - called once every second to discipline system clock.
+ * Normally, the offset passed in (parameter now) is in the range
+ * [-NTP_MAXFREQ, NTP_MAXFREQ]. However, at EVNT_NSET, a much larger
+ * slew is requested if the initial offset is less than the step
+ * threshold, in the range [-step, step] where step is the step
+ * threshold, 128 msec by default. For the remainder of the frequency
+ * training interval, adj_systime is called with 0 offset each second
+ * and slew the large offset at 500 PPM (500 usec/sec).
+ * Returns 1 if okay, 0 if trouble.
+ */
+int
+adj_systime(
+ double now
+ )
+{
+ /* ntp time scale origin as ticks since 1601-01-01 */
+ static const ULONGLONG HNS_JAN_1900 = 94354848000000000ull;
+
+ static DWORD ls_start_tick; /* start of slew in 1ms ticks */
+
+ static double adjtime_carry;
+ double dtemp;
+ u_char isneg;
+ BOOL rc;
+ long TimeAdjustment;
+ SYSTEMTIME st;
+ DWORD ls_elapsed;
+ FT_ULL curr_ft;
+ leap_result_t lsi;
+
+ /*
+ * Add the residual from the previous adjustment to the new
+ * adjustment, bound and round.
+ */
+ dtemp = adjtime_carry + sys_residual + now;
+ adjtime_carry = 0.;
+ sys_residual = 0.;
+ if (dtemp < 0) {
+ isneg = TRUE;
+ dtemp = -dtemp;
+ } else {
+ isneg = FALSE;
+ }
+
+ if (dtemp > NTP_MAXFREQ) {
+ adjtime_carry = dtemp - NTP_MAXFREQ;
+ dtemp = NTP_MAXFREQ;
+ }
+
+ if (isneg) {
+ dtemp = -dtemp;
+ adjtime_carry = -adjtime_carry;
+ }
+
+ dtemp = dtemp * 1e6;
+
+ /*
+ * dtemp is in micro seconds. NT uses 100 ns units,
+ * so a unit change in TimeAdjustment corresponds
+ * to slewing 10 ppm on a 100 Hz system. Calculate
+ * the number of 100ns units to add, using OS tick
+ * frequency as per suggestion from Harry Pyle,
+ * and leave the remainder in dtemp
+ */
+ TimeAdjustment = (long)(dtemp / ppm_per_adjust_unit +
+ ((isneg)
+ ? -0.5
+ : 0.5));
+
+ if (os_ignores_small_adjustment) {
+ /*
+ * As the OS ignores adjustments smaller than 16, we need to
+ * leave these small adjustments in sys_residual, causing
+ * the small values to be averaged over time.
+ */
+ if (TimeAdjustment > -16 && TimeAdjustment < 16) {
+ TimeAdjustment = 0;
+ }
+ }
+
+ dtemp -= TimeAdjustment * ppm_per_adjust_unit;
+
+
+ /* If a piping-hot close leap second is pending for the end
+ * of this day, determine the UTC time stamp when the transition
+ * must take place. (Calculated in the current leap era!)
+ */
+ if (leapsec >= LSPROX_ALERT) {
+ if (0 == ls_ft.ull && leapsec_frame(&lsi)) {
+ if (lsi.tai_diff > 0) {
+ /* A leap second insert is scheduled at the end
+ * of the day. Since we have not yet computed the
+ * time stamp, do it now. Signal electric mode
+ * for this insert. We start processing 1 second early
+ * because we want to slew over 2 seconds.
+ */
+ ls_ft.ull = lsi.ttime.Q_s * HECTONANOSECONDS
+ + HNS_JAN_1900;
+ FileTimeToSystemTime(&ls_ft.ft, &st);
+ msyslog(LOG_NOTICE,
+ "Detected positive leap second announcement "
+ "for %04d-%02d-%02d %02d:%02d:%02d UTC",
+ st.wYear, st.wMonth, st.wDay,
+ st.wHour, st.wMinute, st.wSecond);
+ /* slew starts with last second before insertion!
+ * And we have to tell the core that we deal with it.
+ */
+ ls_ft.ull -= (HECTONANOSECONDS + HECTONANOSECONDS/2);
+ leapsec_electric(TRUE);
+ } else if (lsi.tai_diff < 0) {
+ /* Do not handle negative leap seconds here. If this
+ * happens, let the system step.
+ */
+ leapsec_electric(FALSE);
+ }
+ }
+ } else {
+ /* The leap second announcement is gone. Happens primarily after
+ * the leap transition, but can also be due to a clock step.
+ * Disarm the leap second, but only if there is one scheduled
+ * and not currently in progress!
+ */
+ if (ls_ft.ull != 0 && ls_time_adjustment == 0) {
+ ls_ft.ull = 0;
+ msyslog(LOG_NOTICE, "Leap second announcement disarmed");
+ }
+ }
+
+ /*
+ * If the time stamp for the next leap second has been set
+ * then check if the leap second must be handled. We use
+ * free-running milliseconds from 'GetTickCount()', which
+ * is documented as not affected by clock and/or speed
+ * adjustments.
+ */
+ if (ls_ft.ull != 0) {
+ if (0 == ls_time_adjustment) { /* has not yet been scheduled */
+ GetSystemTimeAsFileTime(&curr_ft.ft);
+ if (curr_ft.ull >= ls_ft.ull) {
+ ls_ft.ull = _UI64_MAX; /* guard against second schedule */
+ ls_time_adjustment = clockperiod / LS_CORR_INTV_SECS;
+ ls_start_tick = GetTickCount();
+ msyslog(LOG_NOTICE, "Started leap second insertion.");
+ }
+ ls_elapsed = 0;
+ } else { /* leap sec adjustment has been scheduled previously */
+ ls_elapsed = GetTickCount() - ls_start_tick;
+ }
+
+ if (ls_time_adjustment != 0) { /* leap second adjustment is currently active */
+ if (ls_elapsed > (LS_CORR_INTV - LS_CORR_LIMIT)) {
+ ls_time_adjustment = 0; /* leap second adjustment done */
+ msyslog(LOG_NOTICE, "Finished leap second insertion.");
+ }
+
+ /*
+ * NOTE: While the system time is slewed during the leap second
+ * the interpolation function which is based on the performance
+ * counter does not account for the slew.
+ */
+ TimeAdjustment -= ls_time_adjustment;
+ }
+ }
+
+
+ sys_residual = dtemp / 1e6;
+ DPRINTF(3, ("adj_systime: %.9f -> %.9f residual %.9f",
+ now, 1e-6 * (TimeAdjustment * ppm_per_adjust_unit),
+ sys_residual));
+ if (0. == adjtime_carry)
+ DPRINTF(3, ("\n"));
+ else
+ DPRINTF(3, (" adjtime %.9f\n", adjtime_carry));
+
+ /* only adjust the clock if adjustment changes */
+ TimeAdjustment += wintickadj;
+ if (last_Adj != TimeAdjustment) {
+ last_Adj = TimeAdjustment;
+ DPRINTF(2, ("SetSystemTimeAdjustment(%+ld)\n", TimeAdjustment));
+ rc = SetSystemTimeAdjustment(clockperiod + TimeAdjustment, FALSE);
+ if (!rc)
+ msyslog(LOG_ERR, "Can't adjust time: %m");
+ } else {
+ rc = TRUE;
+ }
+
+ return rc;
+}
+
+
+void
+init_winnt_time(void)
+{
+ static const char settod[] = "settimeofday=\"SetSystemTime\"";
+ char szMsgPath[MAX_PATH+1];
+ HANDLE hToken = INVALID_HANDLE_VALUE;
+ TOKEN_PRIVILEGES tkp;
+ TIMECAPS tc;
+ BOOL noslew;
+ DWORD adjclockperiod;
+ LARGE_INTEGER Freq;
+ FT_ULL initial_hectonanosecs;
+ FT_ULL next_hectonanosecs;
+ double adjppm;
+ double rawadj;
+ char * pch;
+
+ if (winnt_time_initialized)
+ return;
+
+ /*
+ * Make sure the service is initialized
+ * before we do anything else
+ */
+ ntservice_init();
+
+ /* Set up the Console Handler */
+ if (!SetConsoleCtrlHandler(OnConsoleEvent, TRUE)) {
+ msyslog(LOG_ERR, "Can't set console control handler: %m");
+ }
+
+ /* Set the Event-ID message-file name. */
+ if (!GetModuleFileName(NULL, szMsgPath, sizeof(szMsgPath))) {
+ msyslog(LOG_ERR, "GetModuleFileName(PGM_EXE_FILE) failed: %m");
+ exit(1);
+ }
+
+ /* Initialize random file before OpenSSL checks */
+ if (!init_randfile())
+ msyslog(LOG_ERR, "Unable to initialize .rnd file");
+
+#pragma warning(push)
+#pragma warning(disable: 4127) /* conditional expression is constant */
+
+#ifdef DEBUG
+ if (SIZEOF_TIME_T != sizeof(time_t)
+ || SIZEOF_INT != sizeof(int)
+ || SIZEOF_SIGNED_CHAR != sizeof(char)) {
+ msyslog(LOG_ERR, "config.h SIZEOF_* macros wrong, fatal");
+ exit(1);
+ }
+#endif
+
+#pragma warning(pop)
+
+ init_small_adjustment();
+ leapsec_electric(TRUE);
+
+ /*
+ * Get privileges needed for fiddling with the clock
+ */
+
+ /* get the current process token handle */
+ if (!OpenProcessToken(
+ GetCurrentProcess(),
+ TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,
+ &hToken)) {
+ msyslog(LOG_ERR, "OpenProcessToken failed: %m");
+ exit(-1);
+ }
+ /* get the LUID for system-time privilege. */
+ LookupPrivilegeValue(NULL, SE_SYSTEMTIME_NAME, &tkp.Privileges[0].Luid);
+ tkp.PrivilegeCount = 1; /* one privilege to set */
+ tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
+
+ /* get set-time privilege for this process. */
+ AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
+ (PTOKEN_PRIVILEGES) NULL, 0);
+
+ /* cannot use return value of AdjustTokenPrivileges. */
+ /* (success does not indicate all privileges were set) */
+ if (GetLastError() != ERROR_SUCCESS) {
+ msyslog(LOG_ERR, "AdjustTokenPrivileges failed: %m");
+ /* later set time call will probably fail */
+ }
+
+ CloseHandle(hToken);
+ hToken = INVALID_HANDLE_VALUE;
+
+ /*
+ * Say how we're setting the time of day
+ */
+ set_sys_var(settod, sizeof(settod), RO);
+
+ /*
+ * ntpd on Windows has always raised its priority, without
+ * requiring -N as on Unix. Since Windows ntpd doesn't share
+ * the history of unix ntpd of once having no -N and therefore
+ * needing to be invoked under nice, there is no reason to
+ * bring it in line with the Unix version in this regard.
+ * Instsrv assumes ntpd is invoked with no arguments, and
+ * upgrading users would be negatively surprised by the
+ * poor timekeeping if they failed to add -N as part of
+ * upgrading were we to correct this platform difference.
+ */
+ if (-1 == setpriority(PRIO_PROCESS, 0, NTP_PRIO))
+ exit(-1);
+
+ /* Determine the existing system time slewing */
+ if (!GetSystemTimeAdjustment(&adjclockperiod, &clockperiod, &noslew)) {
+ msyslog(LOG_ERR, "GetSystemTimeAdjustment failed: %m");
+ exit(-1);
+ }
+
+ /*
+ * If there is no slewing before ntpd, adjclockperiod and clockperiod
+ * will be equal. Any difference is carried into adj_systime's first
+ * pass as the previous adjustment.
+ */
+ last_Adj = adjclockperiod - clockperiod;
+
+ if (last_Adj)
+ msyslog(LOG_INFO,
+ "Clock interrupt period %.3f msec "
+ "(startup slew %.1f usec/period)",
+ clockperiod / 1e4,
+ last_Adj / 10.);
+ else
+ msyslog(LOG_INFO,
+ "Clock interrupt period %.3f msec",
+ clockperiod / 1e4);
+
+ /*
+ * Calculate the time adjustment resulting from incrementing
+ * units per tick by 1 unit for 1 second
+ */
+ ppm_per_adjust_unit = 1e6 / clockperiod;
+
+ pch = getenv("NTPD_TICKADJ_PPM");
+ if (pch != NULL && 1 == sscanf(pch, "%lf", &adjppm)) {
+ rawadj = adjppm / ppm_per_adjust_unit;
+ rawadj += (rawadj < 0)
+ ? -0.5
+ : 0.5;
+ wintickadj = (long)rawadj;
+ msyslog(LOG_INFO,
+ "Using NTPD_TICKADJ_PPM %+g ppm (%+ld)",
+ adjppm, wintickadj);
+ }
+
+ /* get the performance counter ticks per second */
+ if (!QueryPerformanceFrequency(&Freq) || !Freq.QuadPart) {
+ msyslog(LOG_ERR, "QueryPerformanceFrequency failed: %m");
+ exit(-1);
+ }
+
+ NomPerfCtrFreq = PerfCtrFreq = Freq.QuadPart;
+ msyslog(LOG_INFO,
+ "Performance counter frequency %.3f MHz",
+ PerfCtrFreq / 1e6);
+
+ /*
+ * With a precise system clock, our interpolation decision is
+ * a slam dunk.
+ */
+ if (NULL != pGetSystemTimePreciseAsFileTime) {
+ winnt_use_interpolation = FALSE;
+ winnt_time_initialized = TRUE;
+
+ return;
+ }
+
+ /*
+ * Implement any multimedia timer manipulation requested via -M
+ * option. This is rumored to be unneeded on Win8 with the
+ * introduction of the precise (interpolated) system clock.
+ */
+ if (modify_mm_timer) {
+ if (timeGetDevCaps(&tc, sizeof(tc)) == TIMERR_NOERROR) {
+ wTimerRes = min(max(tc.wPeriodMin, MM_TIMER_INTV), tc.wPeriodMax);
+ timeBeginPeriod(wTimerRes);
+ atexit(atexit_revert_mm_timer);
+
+ msyslog(LOG_INFO, "MM timer resolution: %u..%u msec, set to %u msec",
+ tc.wPeriodMin, tc.wPeriodMax, wTimerRes );
+ } else {
+ msyslog(LOG_ERR, "Multimedia timer unavailable");
+ }
+ }
+
+ /*
+ * Spin on GetSystemTimeAsFileTime to determine its
+ * granularity. Prior to Windows Vista this is
+ * typically the same as the clock period.
+ */
+ GetSystemTimeAsFileTime(&initial_hectonanosecs.ft);
+ do {
+ GetSystemTimeAsFileTime(&next_hectonanosecs.ft);
+ } while (initial_hectonanosecs.ull == next_hectonanosecs.ull);
+
+ os_clock_precision = next_hectonanosecs.ull -
+ initial_hectonanosecs.ull;
+
+ msyslog(LOG_INFO,
+ "Windows clock precision %.3f msec, min. slew %.3f ppm/s",
+ os_clock_precision / 1e4, ppm_per_adjust_unit);
+
+ winnt_time_initialized = TRUE;
+
+ choose_interp_counter();
+
+ if (getenv("NTPD_USE_SYSTEM_CLOCK") ||
+ (os_clock_precision < 4 * 10000 &&
+ !getenv("NTPD_USE_INTERP_DANGEROUS"))) {
+ msyslog(LOG_INFO, "using Windows clock directly");
+ } else {
+ winnt_use_interpolation = TRUE;
+ get_sys_time_as_filetime = GetInterpTimeAsFileTime;
+ StartClockThread();
+ }
+}
+
+
+void
+atexit_revert_mm_timer(void)
+{
+ timeEndPeriod(wTimerRes);
+ DPRINTF(1, ("MM timer resolution reset\n"));
+}
+
+
+void
+reset_winnt_time(void)
+{
+ SYSTEMTIME st;
+
+ /*
+ * If we're in the 2-second slew right after a leap second,
+ * we don't want to continue that extreme slew, in that case
+ * disable our slewing and return clock discipline to the
+ * kernel. Similarly if we are not yet synchronized,
+ * our current slew may not be a good ongoing trim.
+ * Otherwise, our leave in place the last SetSystemTimeAdjustment
+ * as an ongoing frequency correction, better than nothing.
+ * TODO:
+ * Verify this will not call SetSystemTimeAdjustment if
+ * ntpd is running in ntpdate mode.
+ */
+ if (sys_leap == LEAP_NOTINSYNC || ls_time_adjustment != 0)
+ SetSystemTimeAdjustment(0, TRUE);
+
+ /*
+ * Read the current system time, and write it back to
+ * force CMOS update, only if we are exiting because
+ * the computer is shutting down and we are already
+ * synchronized.
+ */
+ if (ntservice_systemisshuttingdown() && sys_leap != LEAP_NOTINSYNC) {
+ GetSystemTime(&st);
+ SetSystemTime(&st);
+ NLOG(NLOG_SYSEVENT | NLOG_CLOCKINFO)
+ msyslog(LOG_NOTICE, "system is shutting down, CMOS time reset.");
+ }
+}
+
+
+/*
+ * GetSystemTimeAsFileTime() interface clone is used by getclock() in ntpd.
+ */
+
+void WINAPI
+GetInterpTimeAsFileTime(
+ LPFILETIME pft
+ )
+{
+ static ULONGLONG last_interp_time;
+ FT_ULL now_time;
+ FT_ULL now_count;
+ ULONGLONG clock_backward;
+
+ /*
+ * Mark a mark ASAP. The latency to here should be reasonably
+ * deterministic
+ */
+
+ now_count.ull = perf_ctr();
+ now_time.ull = interp_time(now_count.ull, TRUE);
+
+ if (last_interp_time <= now_time.ull) {
+ last_interp_time = now_time.ull;
+ } else {
+ clock_backward = last_interp_time - now_time.ull;
+ if (clock_backward > clock_backward_max) {
+ clock_backward_max = clock_backward;
+ clock_backward_count++;
+ }
+ now_time.ull = last_interp_time;
+ }
+ *pft = now_time.ft;
+
+ return;
+}
+
+
+/*
+ * TimerApcFunction is invoked on the high-priority clock
+ * thread to capture a new baseline system time and
+ * performance counter correlation every 43 msec (64Hz
+ * OS clock precision).
+ */
+static void CALLBACK
+TimerApcFunction(
+ LPVOID lpArgToCompletionRoutine,
+ DWORD dwTimerLowValue,
+ DWORD dwTimerHighValue
+ )
+{
+ static BOOL ctr_freq_timer_started = FALSE;
+ static ULONGLONG prev_count;
+ ULONGLONG now_time;
+ FT_ULL now_count;
+
+ /* Grab the counter first of all */
+ now_count.ull = perf_ctr();
+
+ now_time = (((ULONGLONG)dwTimerHighValue << 32) |
+ dwTimerLowValue);
+
+ /*
+ * Save this correlation in the history.
+ */
+ add_counter_time_pair(now_count.ull, now_time);
+
+ /*
+ * Once we're synchronized start the counter frequency
+ * tuning timer.
+ */
+ if (INVALID_HANDLE_VALUE == ctr_freq_timer &&
+ LEAP_NOTINSYNC != sys_leap)
+ start_ctr_freq_timer(now_time);
+}
+
+
+unsigned WINAPI
+ClockThread(
+ void *arg
+ )
+{
+ LARGE_INTEGER DueTime;
+ HANDLE timer;
+ double HZ;
+ double TimerHz;
+ DWORD timer_period_msec;
+ DWORD res;
+ char *ntpd_int_int_text;
+
+ UNUSED_ARG(arg);
+
+ timer = CreateWaitableTimer(NULL, FALSE, NULL);
+
+ ntpd_int_int_text = getenv("NTPD_INT_INT");
+
+ HZ = (double)HECTONANOSECONDS / clockperiod;
+
+ if (HZ > 63 && HZ < 65) {
+ timer_period_msec = 43;
+ } else if (HZ > 98 && HZ < 102) {
+ timer_period_msec = 27;
+ if (NULL == ntpd_int_int_text)
+ msyslog(LOG_WARNING,
+ "%.3f Hz system clock may benefit from "
+ "custom NTPD_INT_INT env var timer interval "
+ "override between approx. 20 and 50 msecs.",
+ HZ);
+ } else {
+ timer_period_msec = (DWORD)(0.5 + (2.752 * clockperiod / 10000));
+ if (NULL == ntpd_int_int_text)
+ msyslog(LOG_WARNING,
+ "unfamiliar %.3f Hz system clock may benefit "
+ "from custom NTPD_INT_INT env var timer "
+ "interval override between approx. 20 and 50 "
+ "msecs.",
+ HZ);
+ }
+
+ if (ntpd_int_int_text != NULL) {
+ timer_period_msec = atoi(ntpd_int_int_text);
+ timer_period_msec = max(9, timer_period_msec);
+ msyslog(LOG_NOTICE,
+ "using NTPD_INT_INT env var override %u",
+ timer_period_msec);
+ }
+
+ TimerHz = 1e3 / timer_period_msec;
+ msyslog(LOG_NOTICE, "HZ %.3f using %u msec timer %.3f Hz %d deep",
+ HZ,
+ timer_period_msec,
+ TimerHz,
+ BASELINES_USED);
+
+ /* negative DueTime means relative to now */
+ DueTime.QuadPart = -(int)timer_period_msec;
+
+ SetWaitableTimer(
+ timer,
+ &DueTime, /* first fire */
+ timer_period_msec, /* period thereafter */
+ TimerApcFunction, /* callback routine */
+ &timer, /* context for callback */
+ FALSE); /* do not interfere with power saving */
+
+ /*
+ * The clock thread spends the rest of its life in the TimerApcFunction
+ * and ctr_freq_timer_fired timer APC callbacks, which can only occur
+ * while this thread is in an alertable wait. Note the Ex on
+ * WaitForSingleObjectEx and TRUE for fAlertable. The wait will return
+ * after each APC callback in which case we simply wait again. We will
+ * break out of the loop when StopClockThread signals our exit event.
+ */
+ do res = WaitForSingleObjectEx(
+ TimerThreadExitRequest,
+ INFINITE,
+ TRUE);
+ while (WAIT_OBJECT_0 != res);
+
+ CloseHandle(timer);
+
+ if (ctr_freq_timer != INVALID_HANDLE_VALUE) {
+ CloseHandle(ctr_freq_timer);
+ ctr_freq_timer = INVALID_HANDLE_VALUE;
+ }
+
+ return 0;
+}
+
+
+static void
+StartClockThread(void)
+{
+ static BOOL done_once = FALSE;
+ FT_ULL StartTime;
+
+ /* init variables with the time now */
+ GetSystemTimeAsFileTime(&StartTime.ft);
+ baseline_times[0] = StartTime.ull;
+ baseline_counts[0] = perf_ctr();
+
+ /* init sync objects */
+ TimerThreadExitRequest = CreateEvent(NULL, FALSE, FALSE, NULL);
+
+ clock_thread =
+ (HANDLE)_beginthreadex(
+ NULL,
+ 0,
+ ClockThread,
+ NULL,
+ CREATE_SUSPENDED,
+ &clock_thread_id);
+
+ if (clock_thread != NULL) {
+ /* remember the thread priority is only within the process class */
+ if (!SetThreadPriority(clock_thread, THREAD_PRIORITY_TIME_CRITICAL)) {
+ DPRINTF(1, ("Error setting thread priority\n"));
+ }
+
+ lock_thread_to_processor(clock_thread);
+ ResumeThread(clock_thread);
+
+ if (FALSE == done_once) {
+ done_once = TRUE;
+ lock_thread_to_processor(GetCurrentThread());
+ atexit( StopClockThread );
+ }
+
+ /*
+ * Give the clock thread time to fill its counter/time
+ * sample buffer. This will underfill the buffer a
+ * bit for sample periods over 43 msec.
+ */
+ Sleep(BASELINES_USED * 43);
+ }
+}
+
+
+void
+StopClockThread(void)
+{
+ /*
+ * if the clock thread exit()s this routine
+ * will be called on the clock thread and
+ * we need not (and can't) use the normal
+ * TimerThreadExitRequest event.
+ */
+ if (GetCurrentThreadId() != clock_thread_id) {
+
+ if (!SetEvent(TimerThreadExitRequest) ||
+ WaitForSingleObject(clock_thread, 2 * 1000) !=
+ WAIT_OBJECT_0) {
+ msyslog(LOG_ERR, "Failed to stop clock thread.");
+ }
+ }
+ CloseHandle(TimerThreadExitRequest);
+ TimerThreadExitRequest = NULL;
+ CloseHandle(clock_thread);
+ clock_thread = NULL;
+}
+
+
+void
+lock_thread_to_processor(HANDLE thread)
+{
+ static DWORD_PTR ProcessAffinityMask;
+ static DWORD_PTR ThreadAffinityMask;
+ DWORD_PTR SystemAffinityMask;
+ char *cputext;
+ unsigned int cpu;
+
+ if ( ! winnt_time_initialized) {
+ DPRINTF(1, ("init_winnt_time() must be called before "
+ "lock_thread_to_processor(), exiting\n"));
+ exit(-1);
+ }
+
+ if (!winnt_use_interpolation)
+ return;
+
+ if (-1 == lock_interp_threads) {
+ DPRINTF(1, ("choose_interp_counter() is not called "
+ "before lock_thread_to_processor()\n"));
+ exit(-1);
+ } else if (!lock_interp_threads)
+ return;
+
+ /*
+ * Calculate the ThreadAffinityMask we'll use once on the
+ * first invocation.
+ */
+ if (!ProcessAffinityMask) {
+
+ /*
+ * Choose which processor to nail the main and clock threads to.
+ * If we have more than one, we simply choose the 2nd.
+ * Randomly choosing from 2 to n would be better, but in
+ * either case with clock and network interrupts more likely
+ * to be serviced by the first procecssor, let's stay away
+ * from it. QueryPerformanceCounter is not necessarily
+ * consistent across CPUs, hence the need to nail the two
+ * threads involved in QPC-based interpolation to the same
+ * CPU.
+ */
+
+ GetProcessAffinityMask(
+ GetCurrentProcess(),
+ &ProcessAffinityMask,
+ &SystemAffinityMask);
+
+ /*
+ * respect NTPD_CPU environment variable if present
+ * for testing. NTPD_CPU=0 means use all CPUs, 1-64
+ * means lock threads involved in interpolation to
+ * that CPU. Default to 2nd if more than 1.
+ */
+
+ cpu = 2;
+ cputext = getenv("NTPD_CPU");
+ if (cputext) {
+ cpu = (unsigned int) atoi(cputext);
+ cpu = min((8 * sizeof(DWORD_PTR)), cpu);
+ }
+
+ /*
+ * Clear all bits except the 2nd. If we have only one proc
+ * that leaves ThreadAffinityMask zeroed and we won't bother
+ * with SetThreadAffinityMask.
+ */
+
+ ThreadAffinityMask = (0 == cpu) ? 0 : (1 << (cpu - 1));
+
+ if (ThreadAffinityMask &&
+ !(ThreadAffinityMask & ProcessAffinityMask))
+
+ DPRINTF(1, ("Selected CPU %u (mask %x) is outside "
+ "process mask %x, using all CPUs.\n",
+ cpu, ThreadAffinityMask,
+ ProcessAffinityMask));
+ else
+ DPRINTF(1, ("Wiring to processor %u (0 means all) "
+ "affinity mask %x\n",
+ cpu, ThreadAffinityMask));
+
+ ThreadAffinityMask &= ProcessAffinityMask;
+ }
+
+ if (ThreadAffinityMask &&
+ !SetThreadAffinityMask(thread, ThreadAffinityMask))
+ msyslog(LOG_ERR,
+ "Unable to wire thread to mask %x: %m",
+ ThreadAffinityMask);
+}
+
+
+#ifdef HAVE_PPSAPI
+static inline void ntp_timestamp_from_counter(l_fp *, ULONGLONG,
+ ULONGLONG);
+
+/*
+ * helper routine for serial PPS which returns QueryPerformanceCounter
+ * timestamp and needs to interpolate it to an NTP timestamp.
+ */
+void
+pps_ntp_timestamp_from_counter(
+ ntp_fp_t *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp
+ )
+{
+ /*
+ * convert between equivalent l_fp and PPSAPI ntp_fp_t
+ */
+ ntp_timestamp_from_counter(
+ (l_fp *)result,
+ Timestamp,
+ Counterstamp);
+}
+
+
+static inline
+void
+ntp_timestamp_from_counter(
+ l_fp *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp
+ )
+{
+ FT_ULL Now;
+ FT_ULL Ctr;
+ LONGLONG CtrDelta;
+ double seconds;
+ ULONGLONG InterpTimestamp;
+
+ if (winnt_use_interpolation) {
+ if (0 == Counterstamp) {
+ DPRINTF(1, ("ntp_timestamp_from_counter rejecting 0 counter.\n"));
+ ZERO(*result);
+ return;
+ }
+
+ InterpTimestamp = interp_time(Counterstamp + QPC_offset, FALSE);
+ } else { /* ! winnt_use_interpolation */
+ if (NULL != pGetSystemTimePreciseAsFileTime &&
+ 0 != Counterstamp) {
+ QueryPerformanceCounter(&Ctr.li);
+ (*pGetSystemTimePreciseAsFileTime)(&Now.ft);
+ CtrDelta = Ctr.ull - Counterstamp;
+ seconds = (double)CtrDelta / PerfCtrFreq;
+ InterpTimestamp = Now.ull -
+ (ULONGLONG)(seconds * HECTONANOSECONDS);
+ } else {
+ /* have to simply use the driver's system time timestamp */
+ InterpTimestamp = Timestamp;
+ GetSystemTimeAsFileTime(&Now.ft);
+ }
+ }
+
+ /* convert from 100ns units to NTP fixed point format */
+
+ InterpTimestamp -= FILETIME_1970;
+ result->l_ui = JAN_1970 + (u_int32)(InterpTimestamp / HECTONANOSECONDS);
+ result->l_uf = (u_int32)((InterpTimestamp % HECTONANOSECONDS) *
+ (ULONGLONG)FRAC / HECTONANOSECONDS);
+}
+#endif /* HAVE_PPSAPI */
+
+
+void
+win_time_stepped(void)
+{
+ /*
+ * called back by ntp_set_tod after the system
+ * time has been stepped (set).
+ *
+ * We normally prevent the reported time from going backwards
+ * but need to allow it in this case.
+ */
+ if (FALSE == winnt_use_interpolation)
+ return;
+
+
+ /*
+ * Restart the clock thread to get a new baseline
+ * time/counter correlation.
+ */
+ StopClockThread();
+
+ /*
+ * newest_baseline_gen is a generation counter
+ * incremented once each time newest_baseline
+ * is reset.
+ */
+ newest_baseline_gen++;
+
+ clock_backward_max = CLOCK_BACK_THRESHOLD;
+ clock_backward_count = 0;
+ newest_baseline = 0;
+ ZERO(baseline_counts);
+ ZERO(baseline_times);
+
+ StartClockThread();
+}
+
+
+/*
+ * log2ull - log base 2 of a unsigned 64-bit number
+ */
+int
+log2ull(
+ ULONGLONG n
+ )
+{
+ const ULONGLONG one = 1;
+ int log = 0;
+
+ if (n >= one<<32) { n >>= 32; log += 32; }
+ if (n >= one<<16) { n >>= 16; log += 16; }
+ if (n >= one<< 8) { n >>= 8; log += 8; }
+ if (n >= one<< 4) { n >>= 4; log += 4; }
+ if (n >= one<< 2) { n >>= 2; log += 2; }
+ if (n >= one<< 1) { log += 1; }
+
+ return (n) ? log : (-1);
+}
+
+
+/*
+ * ctr_freq_timer_fired is called once a few seconds before
+ * tune_ctr_period seconds have elapsed, to reset the timer
+ * and hopefully minimize error due to the system using the
+ * nominal performance counter frequency to set the timer
+ * internally, which is typically dozens of PPM from the
+ * actual performance counter rate. A few seconds later
+ * it is called again to observe the counter and estimate the
+ * counter frequency.
+ */
+static void CALLBACK
+ctr_freq_timer_fired(
+ LPVOID arg,
+ DWORD dwTimeLow,
+ DWORD dwTimeHigh
+ )
+{
+ static FT_ULL begin_time = {0};
+ static FT_ULL begin_count = {0};
+ static ULONGLONG next_period_time = 0;
+ static ULONGLONG report_systemtime = 0;
+ const ULONGLONG five_minutes = 5ui64 * 60 * HECTONANOSECONDS;
+ FT_ULL now_time;
+ FT_ULL now_count;
+
+ if (!begin_time.ull) {
+ begin_count.ull = perf_ctr();
+ begin_time.ft.dwLowDateTime = dwTimeLow;
+ begin_time.ft.dwHighDateTime = dwTimeHigh;
+
+ /*
+ * adapt perf ctr observation interval to the
+ * counter frequency
+ */
+ tune_ctr_period = 22680 / log2ull(NomPerfCtrFreq);
+
+ /*
+ * reset timer 2s before period ends to minimize
+ * error from OS timer routines using nominal
+ * performance frequency internally.
+ */
+ tune_ctr_freq_max_interval = tune_ctr_period - 2;
+
+ next_period_time = begin_time.ull +
+ (ULONGLONG)tune_ctr_period * HECTONANOSECONDS;
+
+ ROUND_TO_NEXT_SEC_BOTTOM(next_period_time);
+
+ reset_ctr_freq_timer(next_period_time, begin_time.ull);
+
+ return;
+ }
+
+ now_time.ft.dwLowDateTime = dwTimeLow;
+ now_time.ft.dwHighDateTime = dwTimeHigh;
+
+ if (now_time.ull >= next_period_time) {
+ now_count.ull = perf_ctr();
+ tune_ctr_freq(
+ now_count.ull - begin_count.ull,
+ now_time.ull - begin_time.ull);
+ next_period_time += (ULONGLONG)tune_ctr_period * HECTONANOSECONDS;
+ begin_count.ull = now_count.ull;
+ begin_time.ull = now_time.ull;
+ }
+
+ /*
+ * Log clock backward events no more often than 5 minutes.
+ */
+ if (!report_systemtime) {
+ report_systemtime = now_time.ull + five_minutes;
+ } else if (report_systemtime <= now_time.ull) {
+ report_systemtime += five_minutes;
+ if (clock_backward_count) {
+ msyslog(LOG_WARNING,
+ "clock would have gone backward %d times, "
+ "max %.1f usec",
+ clock_backward_count,
+ clock_backward_max / 10.);
+
+ clock_backward_max = CLOCK_BACK_THRESHOLD;
+ clock_backward_count = 0;
+ }
+ }
+ reset_ctr_freq_timer(next_period_time, now_time.ull);
+}
+
+
+void
+reset_ctr_freq_timer_abs(
+ ULONGLONG when
+ )
+{
+ FT_ULL fire_time;
+
+ fire_time.ull = when;
+ SetWaitableTimer(
+ ctr_freq_timer,
+ &fire_time.li, /* first fire */
+ 0, /* not periodic */
+ ctr_freq_timer_fired, /* callback routine */
+ NULL, /* context for callback */
+ FALSE); /* do not interfere with power saving */
+}
+
+
+void
+reset_ctr_freq_timer(
+ ULONGLONG when,
+ ULONGLONG now
+ )
+{
+ if (when - now >
+ (tune_ctr_freq_max_interval * HECTONANOSECONDS + HECTONANOSECONDS))
+ when = now + tune_ctr_freq_max_interval * HECTONANOSECONDS;
+
+ reset_ctr_freq_timer_abs(when);
+}
+
+
+void
+start_ctr_freq_timer(
+ ULONGLONG now_time
+ )
+{
+ ULONGLONG when;
+
+ ctr_freq_timer = CreateWaitableTimer(NULL, FALSE, NULL);
+ when = now_time;
+ ROUND_TO_NEXT_SEC_BOTTOM(when);
+
+ reset_ctr_freq_timer_abs(when);
+}
+
+
+/*
+ * tune_ctr_freq is called once per tune_ctr_period seconds
+ * with a counter difference and time difference.
+ */
+void
+tune_ctr_freq(
+ LONGLONG ctr_delta,
+ LONGLONG time_delta
+ )
+{
+ static unsigned count = 0;
+ static unsigned dispcount = 0;
+ static unsigned report_at_count = 0;
+ static int disbelieved = 0;
+ static int i = 0;
+ static double nom_freq = 0;
+ static LONGLONG diffs[TUNE_CTR_DEPTH] = {0};
+ static LONGLONG sum = 0;
+ char ctr_freq_eq[64];
+ LONGLONG delta;
+ LONGLONG deltadiff;
+ ULONGLONG ObsPerfCtrFreq;
+ double freq;
+ double this_freq;
+ BOOL isneg;
+
+ /* one-time initialization */
+ if (!report_at_count) {
+ report_at_count = 24 * 60 * 60 / tune_ctr_period;
+ nom_freq = NomPerfCtrFreq / 1e6;
+ }
+
+ /* delta is the per-second observed frequency this time */
+ delta = (LONGLONG)((double)ctr_delta * HECTONANOSECONDS /
+ time_delta);
+
+ /* disbelieve any delta more than +/- 976 PPM from nominal */
+ deltadiff = delta - NomPerfCtrFreq;
+ if (0 > deltadiff) {
+ isneg = TRUE;
+ deltadiff = -deltadiff;
+ } else {
+ isneg = FALSE;
+ }
+
+ if ((ULONGLONG)deltadiff > (NomPerfCtrFreq / 1024)) {
+ disbelieved++;
+ dispcount++;
+#ifdef DEBUG
+ msyslog(LOG_DEBUG, "ctr delta %s%lld exceeds limit %llu",
+ (isneg) ? "-" : "",
+ deltadiff,
+ NomPerfCtrFreq / 1024);
+#endif
+ } else {
+
+ /*
+ * collect average over TUNE_CTR_DEPTH samples
+ * for our PerfCtrFreq trimming.
+ */
+
+ if (isneg)
+ deltadiff = -deltadiff;
+ sum -= diffs[i];
+ diffs[i] = deltadiff;
+ sum += deltadiff;
+ i = (i + 1) % COUNTOF(diffs);
+ count++;
+ dispcount++;
+ }
+
+ this_freq = delta / 1e6;
+
+ ObsPerfCtrFreq = NomPerfCtrFreq + (sum / COUNTOF(diffs));
+
+#if 1 /* #if 0 to disable changing freq used */
+ /* get rid of ObsPerfCtrFreq when removing the #ifdef */
+ PerfCtrFreq = ObsPerfCtrFreq;
+#endif
+ freq = PerfCtrFreq / 1e6;
+
+ /*
+ * make the performance counter's frequency error from its
+ * nominal rate, expressed in PPM, available via ntpq as
+ * system variable "ctr_frequency". This is consistent with
+ * "frequency" which is the system clock drift in PPM.
+ */
+ snprintf(ctr_freq_eq, sizeof(ctr_freq_eq), "ctr_frequency=%.2f",
+ 1e6 * (freq - nom_freq) / nom_freq);
+ set_sys_var(ctr_freq_eq, strlen(ctr_freq_eq) + 1, RO | DEF);
+
+ /*
+ * report observed ctr freq each time the estimate used during
+ * startup moves toward the observed freq from the nominal.
+ */
+
+ if (count > COUNTOF(diffs) &&
+ /* (count % COUNTOF(diffs)) && */ /* enables reporting each */
+ dispcount < report_at_count) /* TUNE_CTR_DEPTH samples */
+ return;
+
+ NLOG(NLOG_CLOCKINFO)
+ if (count <= COUNTOF(diffs))
+ /* moving to observed freq. from nominal (startup) */
+ msyslog(LOG_INFO,
+ (freq > 100)
+ ? "ctr %.3f MHz %+6.2f PPM using %.3f MHz %+6.2f PPM"
+ : "ctr %.6f MHz %+6.2f PPM using %.6f MHz %+6.2f PPM",
+ this_freq,
+ 1e6 * (this_freq - nom_freq) / nom_freq,
+ freq,
+ 1e6 * (freq - nom_freq) / nom_freq);
+ else
+ /* steady state */
+ msyslog(LOG_INFO,
+ (freq > 100)
+ ? "ctr %.3f MHz %+.2f PPM"
+ : "ctr %.6f MHz %+.2f PPM",
+ freq,
+ 1e6 * (freq - nom_freq) / nom_freq);
+
+ if (disbelieved) {
+ msyslog(LOG_ERR,
+ "%d ctr samples exceed +/- 976 PPM range gate",
+ disbelieved);
+ disbelieved = 0;
+ }
+
+ dispcount = 0;
+}
+
+
+/*
+ * add_counter_time_pair is called by the
+ * high priority clock thread with each new
+ * baseline counter/time correlation.
+ */
+void
+add_counter_time_pair(
+ ULONGLONG ctr,
+ LONGLONG time
+ )
+{
+ int i;
+
+ i = (newest_baseline + 1) % BASELINES_TOT;
+
+ baseline_counts[i] = ctr;
+ baseline_times[i] = time;
+
+ newest_baseline = i;
+}
+
+
+/*
+ * interp_time estimates NT time in 100ns units
+ * based on a performance counter value given.
+ * This must tolerate recent historical counters
+ * as well as current. When current is FALSE
+ * we can't assume ctr is the latest/highest
+ * seen.
+ */
+ULONGLONG
+interp_time(
+ ULONGLONG ctr,
+ BOOL current
+ )
+{
+ static __declspec(thread) int last_newest = -1;
+ static __declspec(thread) int last_newest_gen;
+ static __declspec(thread) int best_index;
+ ULONGLONG this_ctr;
+ LONGLONG this_time;
+ LONGLONG latest_time;
+ LONGLONG ctr_diff;
+ int i;
+ int i_gen;
+ int c;
+
+ /*
+ * Use the system time (roughly synchronised to the tick, and
+ * extrapolated using the system performance counter.
+ *
+ * Cache the results per thread and only repeat the
+ * calculation when new data has arrived.
+ */
+ i = newest_baseline;
+ i_gen = newest_baseline_gen;
+
+ if (last_newest == i && last_newest_gen == i_gen) {
+ this_time = baseline_times[best_index];
+ ctr_diff = ctr - baseline_counts[best_index];
+ this_time += (LONGLONG)PERF2HNS((double)ctr_diff);
+
+ return this_time;
+ }
+
+ last_newest = i;
+ last_newest_gen = i_gen;
+
+ latest_time = 0;
+
+ /*
+ * Run through the history calculating the interpolated
+ * time based on each counter/time correlation in turn,
+ * and believe the latest one. This is akin to the NTP
+ * protocol minimum delay clock filter. Errors due to
+ * counter/time correlations with stale time are all
+ * negative.
+ */
+ for (c = 0; c < BASELINES_USED; c++) {
+ if (baseline_times[i]) {
+ this_time = baseline_times[i];
+ this_ctr = baseline_counts[i];
+
+ ctr_diff = ctr - this_ctr;
+
+ if (current && ctr_diff < 0) {
+ /*
+ * The performance counter apparently went
+ * backwards without rolling over. It might
+ * be nice to complain but we don't want
+ * to do it repeatedly.
+ */
+ ctr_diff = 0;
+ }
+
+ this_time += (LONGLONG)PERF2HNS((double)ctr_diff);
+
+ if (this_time > latest_time) {
+ latest_time = this_time;
+ best_index = i;
+ }
+ }
+ i = i ? (i - 1) : (BASELINES_TOT - 1);
+ }
+
+ return latest_time;
+}
diff --git a/ports/winnt/ntpd/ntp_iocompletionport.c b/ports/winnt/ntpd/ntp_iocompletionport.c
new file mode 100644
index 000000000000..046d6cda1e2b
--- /dev/null
+++ b/ports/winnt/ntpd/ntp_iocompletionport.c
@@ -0,0 +1,1639 @@
+/*
+-----------------------------------------------------------------------
+This is the IO completion port handling for async/overlapped IO on
+Windows >= Win2000.
+
+Some notes on the implementation:
+
++ Only one thread is used to serve the IO completion port, for several
+ reasons:
+
+ * First, there seems to be (have been?) trouble that locked up NTPD
+ when more than one thread was used for IOCPL.
+
+ * Second, for the sake of the time stamp interpolation the threads
+ must run on the same CPU as the time interpolation thread. This
+ makes using more than one thread useless, as they would compete for
+ the same core and create contention.
+
++ Some IO operations need a possibly lengthy postprocessing. Emulating
+ the UN*X line discipline is currently the only but prominent example.
+ To avoid the processing in the time-critical IOCPL thread, longer
+ processing is offloaded the worker thread pool.
+
++ A fact that seems not as well-known as it should be is that all
+ ressources passed to an overlapped IO operation must be considered
+ owned by the OS until the result has been fetched/dequeued. This
+ includes all overlapped structures and buffers involved, so cleaning
+ up on shutdown must be carefully constructed. (This includes closing
+ all the IO handles and waiting for the results to be dequeued.
+ 'CancleIo()' cannot be used since it's broken beyond repair.)
+
+ If this is not possible, then all ressources should be dropped into
+ oblivion -- otherwise "bad things (tm)" are bound to happen.
+
+ Using a private heap that is silently dropped but not deleted is a
+ good way to avoid cluttering memory stats with IO context related
+ objects. Leak tracing becomes more interesting, though.
+
+
+The current implementation is based on the work of Danny Mayer who improved
+the original implementation and Dave Hart who improved on the serial I/O
+routines. The true roots of this file seem to be shrouded by the mist of time...
+
+
+This version still provides the 'user space PPS' emulation
+feature.
+
+Juergen Perlinger (perlinger@ntp.org) Feb 2012
+
+-----------------------------------------------------------------------
+*/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifdef HAVE_IO_COMPLETION_PORT
+
+#include <stddef.h>
+#include <stdio.h>
+#include <process.h>
+#include <syslog.h>
+
+#include "ntpd.h"
+#include "ntp_machine.h"
+#include "ntp_iocompletionport.h"
+#include "ntp_request.h"
+#include "ntp_assert.h"
+#include "ntp_io.h"
+#include "ntp_lists.h"
+
+
+#define CONTAINEROF(p, type, member) \
+ ((type *)((char *)(p) - offsetof(type, member)))
+
+#ifdef _MSC_VER
+# pragma warning(push)
+# pragma warning(disable: 201) /* nonstd extension nameless union */
+#endif
+
+/*
+ * ---------------------------------------------------------------------
+ * storage type for PPS data (DCD change counts & times)
+ * ---------------------------------------------------------------------
+ */
+struct PpsData {
+ u_long cc_assert;
+ u_long cc_clear;
+ l_fp ts_assert;
+ l_fp ts_clear;
+};
+typedef struct PpsData PPSData_t;
+
+struct PpsDataEx {
+ u_long cov_count;
+ PPSData_t data;
+};
+typedef volatile struct PpsDataEx PPSDataEx_t;
+
+/*
+ * ---------------------------------------------------------------------
+ * device context; uses reference counting to avoid nasty surprises.
+ * Currently this stores only the PPS time stamps, but it could be
+ * easily extended.
+ * ---------------------------------------------------------------------
+ */
+#define PPS_QUEUE_LEN 8u /* must be power of two! */
+#define PPS_QUEUE_MSK (PPS_QUEUE_LEN-1) /* mask for easy MOD ops */
+
+struct DeviceContext {
+ volatile long ref_count;
+ volatile u_long cov_count;
+ PPSData_t pps_data;
+ PPSDataEx_t pps_buff[PPS_QUEUE_LEN];
+};
+
+typedef struct DeviceContext DevCtx_t;
+
+/*
+ * ---------------------------------------------------------------------
+ * I/O context structure
+ *
+ * This is an extended overlapped structure. Some fields are only used
+ * for serial I/O, others are used for all operations. The serial I/O is
+ * more interesting since the same context object is used for waiting,
+ * actual I/O and possibly offload processing in a worker thread until
+ * a complete operation cycle is done.
+ *
+ * In this case the I/O context is used to gather all the bits that are
+ * finally needed for the processing of the buffer.
+ * ---------------------------------------------------------------------
+ */
+//struct IoCtx;
+typedef struct IoCtx IoCtx_t;
+typedef struct refclockio RIO_t;
+
+typedef void (*IoCompleteFunc)(ULONG_PTR, IoCtx_t *);
+
+struct IoCtx {
+ OVERLAPPED ol; /* 'kernel' part of the context */
+ union {
+ recvbuf_t * recv_buf; /* incoming -> buffer structure */
+ void * trans_buf; /* outgoing -> char array */
+ PPSData_t * pps_buf; /* for reading PPS seq/stamps */
+ HANDLE ppswake; /* pps wakeup for attach */
+ };
+ IoCompleteFunc onIoDone; /* HL callback to execute */
+ RIO_t * rio; /* RIO backlink (for offload) */
+ DevCtx_t * devCtx;
+ l_fp DCDSTime; /* PPS-hack: time of DCD ON */
+ l_fp FlagTime; /* timestamp of flag/event char */
+ l_fp RecvTime; /* timestamp of callback */
+ DWORD errCode; /* error code of last I/O */
+ DWORD byteCount; /* byte count " */
+ DWORD com_events; /* buffer for COM events */
+ unsigned int flRawMem : 1; /* buffer is raw memory -> free */
+ unsigned int flTsDCDS : 1; /* DCDSTime valid? */
+ unsigned int flTsFlag : 1; /* FlagTime valid? */
+};
+
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
+/*
+ * local function definitions
+ */
+static void ntpd_addremove_semaphore(HANDLE, int);
+static inline void set_serial_recv_time (recvbuf_t *, IoCtx_t *);
+
+/* Initiate/Request async IO operations */
+static BOOL QueueSerialWait (RIO_t *, recvbuf_t *, IoCtx_t *);
+static BOOL QueueSerialRead (RIO_t *, recvbuf_t *, IoCtx_t *);
+static BOOL QueueRawSerialRead(RIO_t *, recvbuf_t *, IoCtx_t *);
+static BOOL QueueSocketRecv (SOCKET , recvbuf_t *, IoCtx_t *);
+
+
+/* High-level IO callback functions */
+static void OnSocketRecv (ULONG_PTR, IoCtx_t *);
+static void OnSerialWaitComplete (ULONG_PTR, IoCtx_t *);
+static void OnSerialReadComplete (ULONG_PTR, IoCtx_t *);
+static void OnRawSerialReadComplete(ULONG_PTR, IoCtx_t *);
+static void OnSerialWriteComplete (ULONG_PTR, IoCtx_t *);
+
+/* worker pool offload functions */
+static DWORD WINAPI OnSerialReadWorker(void * ctx);
+
+
+/* keep a list to traverse to free memory on debug builds */
+#ifdef DEBUG
+static void free_io_completion_port_mem(void);
+#endif
+
+
+ HANDLE WaitableExitEventHandle;
+ HANDLE WaitableIoEventHandle;
+static HANDLE hIoCompletionPort;
+
+DWORD ActiveWaitHandles;
+HANDLE WaitHandles[16];
+
+/*
+ * -------------------------------------------------------------------
+ * We make a pool of our own for IO context objects -- the are owned by
+ * the system until a completion result is pulled from the queue, and
+ * they seriously go into the way of memory tracking until we can safely
+ * cancel an IO request.
+ * -------------------------------------------------------------------
+ */
+static HANDLE hHeapHandle;
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * Create a new heap for IO context objects
+ */
+static void
+IoCtxPoolInit(
+ size_t initObjs
+ )
+{
+ hHeapHandle = HeapCreate(0, initObjs * sizeof(IoCtx_t), 0);
+ if (hHeapHandle == NULL) {
+ msyslog(LOG_ERR, "Can't initialize Heap: %m");
+ exit(1);
+ }
+}
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *
+ * Delete the IO context heap
+ *
+ * Since we do not know what callbacks are pending, we just drop the
+ * pool into oblivion. New allocs and frees will fail from this moment,
+ * but we simply don't care. At least the normal heap dump stats will
+ * show no leaks from IO context blocks. On the downside, we have to
+ * track them ourselves if something goes wrong.
+ */
+static void
+IoCtxPoolDone(void)
+{
+ hHeapHandle = NULL;
+}
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * Alloc & Free on local heap
+ *
+ * When the heap handle is NULL, these both will fail; Alloc with a NULL
+ * return and Free silently.
+ */
+static void * __fastcall
+LocalPoolAlloc(
+ size_t size,
+ const char * desc
+)
+{
+ void * ptr;
+
+ /* Windows heaps can't grok zero byte allocation.
+ * We just get one byte.
+ */
+ if (size == 0)
+ size = 1;
+ if (hHeapHandle != NULL)
+ ptr = HeapAlloc(hHeapHandle, HEAP_ZERO_MEMORY, size);
+ else
+ ptr = NULL;
+ DPRINTF(3, ("Allocate '%s', heap=%p, ptr=%p\n",
+ desc, hHeapHandle, ptr));
+
+ return ptr;
+}
+
+static void __fastcall
+LocalPoolFree(
+ void * ptr,
+ const char * desc
+ )
+{
+ DPRINTF(3, ("Free '%s', heap=%p, ptr=%p\n",
+ desc, hHeapHandle, ptr));
+ if (ptr != NULL && hHeapHandle != NULL)
+ HeapFree(hHeapHandle, 0, ptr);
+}
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * Alloc & Free of Device context
+ *
+ * When the heap handle is NULL, these both will fail; Alloc with a NULL
+ * return and Free silently.
+ */
+static DevCtx_t * __fastcall
+DevCtxAlloc(void)
+{
+ DevCtx_t * devCtx;
+ u_long slot;
+
+ /* allocate struct and tag all slots as invalid */
+ devCtx = (DevCtx_t *)LocalPoolAlloc(sizeof(DevCtx_t), "DEV ctx");
+ if (devCtx != NULL)
+ {
+ /* The initial COV values make sure there is no busy
+ * loop on unused/empty slots.
+ */
+ devCtx->cov_count = 0;
+ for (slot = 0; slot < PPS_QUEUE_LEN; slot++)
+ devCtx->pps_buff[slot].cov_count = ~slot;
+ }
+ return devCtx;
+}
+
+static void __fastcall
+DevCtxFree(
+ DevCtx_t * devCtx
+ )
+{
+ /* this would be the place to get rid of managed ressources. */
+ LocalPoolFree(devCtx, "DEV ctx");
+}
+
+static DevCtx_t * __fastcall
+DevCtxAttach(
+ DevCtx_t * devCtx
+ )
+{
+ if (devCtx != NULL)
+ InterlockedIncrement(&devCtx->ref_count);
+ return devCtx;
+}
+
+static void __fastcall
+DevCtxDetach(
+ DevCtx_t * devCtx
+ )
+{
+ if (devCtx && !InterlockedDecrement(&devCtx->ref_count))
+ DevCtxFree(devCtx);
+}
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * Alloc & Free of I/O context
+ *
+ * When the heap handle is NULL, these both will fail; Alloc with a NULL
+ * return and Free silently.
+ */
+static IoCtx_t * __fastcall
+IoCtxAlloc(
+ DevCtx_t * devCtx
+ )
+{
+ IoCtx_t * ioCtx;
+
+ ioCtx = (IoCtx_t *)LocalPoolAlloc(sizeof(IoCtx_t), "IO ctx");
+ if (ioCtx != NULL)
+ ioCtx->devCtx = DevCtxAttach(devCtx);
+ return ioCtx;
+}
+
+static void __fastcall
+IoCtxFree(
+ IoCtx_t * ctx
+ )
+{
+ if (ctx)
+ DevCtxDetach(ctx->devCtx);
+ LocalPoolFree(ctx, "IO ctx");
+}
+
+static void __fastcall
+IoCtxReset(
+ IoCtx_t * ctx
+ )
+{
+ RIO_t * rio;
+ DevCtx_t * dev;
+ if (ctx) {
+ rio = ctx->rio;
+ dev = ctx->devCtx;
+ ZERO(*ctx);
+ ctx->rio = rio;
+ ctx->devCtx = dev;
+ }
+}
+
+/*
+ * -------------------------------------------------------------------
+ * The IO completion thread and support functions
+ *
+ * There is only one completion thread, because it is locked to the same
+ * core as the time interpolation. Having more than one causes core
+ * contention and is not useful.
+ * -------------------------------------------------------------------
+ */
+static HANDLE hIoCompletionThread;
+static UINT tidCompletionThread;
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * The IO completion worker thread
+ *
+ * Note that this thread does not enter an alertable wait state and that
+ * the only waiting point is the IO completion port. If stopping this
+ * thread with a special queued result packet does not work,
+ * 'TerminateThread()' is the only remaining weapon in the arsenal. A
+ * dangerous weapon -- it's like SIGKILL.
+ */
+static unsigned WINAPI
+iocompletionthread(void *NotUsed)
+{
+ DWORD err;
+ DWORD octets;
+ ULONG_PTR key;
+ OVERLAPPED * pol;
+ IoCtx_t * lpo;
+
+ UNUSED_ARG(NotUsed);
+
+ /*
+ * Socket and refclock receive call gettimeofday() so the I/O
+ * thread needs to be on the same processor as the main and
+ * timing threads to ensure consistent QueryPerformanceCounter()
+ * results.
+ *
+ * This gets seriously into the way of efficient thread pooling
+ * on multicore systems.
+ */
+ lock_thread_to_processor(GetCurrentThread());
+
+ /*
+ * Set the thread priority high enough so I/O will preempt
+ * normal recv packet processing, but not higher than the timer
+ * sync thread.
+ */
+ if (!SetThreadPriority(GetCurrentThread(),
+ THREAD_PRIORITY_ABOVE_NORMAL))
+ msyslog(LOG_ERR, "Can't set thread priority: %m");
+
+ for(;;) {
+ if (GetQueuedCompletionStatus(
+ hIoCompletionPort,
+ &octets,
+ &key,
+ &pol,
+ INFINITE)) {
+ err = ERROR_SUCCESS;
+ } else {
+ err = GetLastError();
+ }
+ if (NULL == pol) {
+ DPRINTF(2, ("Overlapped IO Thread Exiting\n"));
+ break; /* fail */
+ }
+ lpo = CONTAINEROF(pol, IoCtx_t, ol);
+ get_systime(&lpo->RecvTime);
+ lpo->byteCount = octets;
+ lpo->errCode = err;
+ handler_calls++;
+ (*lpo->onIoDone)(key, lpo);
+ }
+
+ return 0;
+}
+
+/*
+ * -------------------------------------------------------------------
+ * Create/initialise the I/O creation port
+ */
+void
+init_io_completion_port(void)
+{
+#ifdef DEBUG
+ atexit(&free_io_completion_port_mem);
+#endif
+
+ /* Create the context pool first. */
+ IoCtxPoolInit(20);
+
+ /* Create the event used to signal an IO event */
+ WaitableIoEventHandle = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (WaitableIoEventHandle == NULL) {
+ msyslog(LOG_ERR, "Can't create I/O event handle: %m");
+ exit(1);
+ }
+ /* Create the event used to signal an exit event */
+ WaitableExitEventHandle = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (WaitableExitEventHandle == NULL) {
+ msyslog(LOG_ERR, "Can't create exit event handle: %m");
+ exit(1);
+ }
+
+ /* Create the IO completion port */
+ hIoCompletionPort = CreateIoCompletionPort(
+ INVALID_HANDLE_VALUE, NULL, 0, 0);
+ if (hIoCompletionPort == NULL) {
+ msyslog(LOG_ERR, "Can't create I/O completion port: %m");
+ exit(1);
+ }
+
+ /* Initialize the Wait Handles table */
+ WaitHandles[0] = WaitableIoEventHandle;
+ WaitHandles[1] = WaitableExitEventHandle; /* exit request */
+ WaitHandles[2] = WaitableTimerHandle;
+ ActiveWaitHandles = 3;
+
+ /*
+ * Supply ntp_worker.c with function to add or remove a
+ * semaphore to the ntpd I/O loop which is signalled by a worker
+ * when a response is ready. The callback is invoked in the
+ * parent.
+ */
+ addremove_io_semaphore = &ntpd_addremove_semaphore;
+
+ /*
+ * Have one thread servicing I/O. See rationale in front matter.
+ */
+ hIoCompletionThread = (HANDLE)_beginthreadex(
+ NULL,
+ 0,
+ iocompletionthread,
+ NULL,
+ 0,
+ &tidCompletionThread);
+}
+
+
+/*
+ * -------------------------------------------------------------------
+ * completion port teardown
+ */
+void
+uninit_io_completion_port(
+ void
+ )
+{
+ DWORD rc;
+
+ /* do noting if completion port already gone. */
+ if (NULL == hIoCompletionPort)
+ return;
+
+ /*
+ * Service thread seems running. Terminate him with grace
+ * first and force later...
+ */
+ if (tidCompletionThread != GetCurrentThreadId()) {
+ PostQueuedCompletionStatus(hIoCompletionPort, 0, 0, 0);
+ rc = WaitForSingleObject(hIoCompletionThread, 5000);
+ if (rc == WAIT_TIMEOUT) {
+ /* Thread lost. Kill off with TerminateThread. */
+ msyslog(LOG_ERR,
+ "IO completion thread refuses to terminate");
+ TerminateThread(hIoCompletionThread, ~0UL);
+ }
+ }
+
+ /* stop using the memory pool */
+ IoCtxPoolDone();
+
+ /* now reap all handles... */
+ CloseHandle(hIoCompletionThread);
+ hIoCompletionThread = NULL;
+ CloseHandle(hIoCompletionPort);
+ hIoCompletionPort = NULL;
+}
+
+
+/*
+ * -------------------------------------------------------------------
+ * external worker thread support (wait handle stuff)
+ *
+ * !Attention!
+ *
+ * - This function must only be called from the main thread. Changing
+ * a set of wait handles while someone is waiting on it creates
+ * undefined behaviour. Also there's no provision for mutual
+ * exclusion when accessing global values.
+ *
+ * - It's not possible to register a handle that is already in the table.
+ */
+static void
+ntpd_addremove_semaphore(
+ HANDLE sem,
+ int remove
+ )
+{
+ DWORD hi;
+
+ /* search for a matching entry first. */
+ for (hi = 3; hi < ActiveWaitHandles; hi++)
+ if (sem == WaitHandles[hi])
+ break;
+
+ if (remove) {
+ /*
+ * If found, eventually swap with last entry to keep
+ * the table dense.
+ */
+ if (hi < ActiveWaitHandles) {
+ ActiveWaitHandles--;
+ if (hi < ActiveWaitHandles)
+ WaitHandles[hi] =
+ WaitHandles[ActiveWaitHandles];
+ WaitHandles[ActiveWaitHandles] = NULL;
+ }
+ } else {
+ /*
+ * Make sure the entry is not found and there is enough
+ * room, then append to the table array.
+ */
+ if (hi >= ActiveWaitHandles) {
+ NTP_INSIST(ActiveWaitHandles < COUNTOF(WaitHandles));
+ WaitHandles[ActiveWaitHandles] = sem;
+ ActiveWaitHandles++;
+ }
+ }
+}
+
+
+#ifdef DEBUG
+static void
+free_io_completion_port_mem(
+ void
+ )
+{
+ /*
+ * At the moment, do absolutely nothing. Returning memory here
+ * requires NO PENDING OVERLAPPED OPERATIONS AT ALL at this
+ * point in time, and as long we cannot be reasonable sure about
+ * that the simple advice is:
+ *
+ * HANDS OFF!
+ */
+}
+#endif /* DEBUG */
+
+
+/*
+ * -------------------------------------------------------------------
+ * Serial IO stuff
+ *
+ * Prelude -- common error checking code
+ * -------------------------------------------------------------------
+ */
+extern char * NTstrerror(int err, BOOL *bfreebuf);
+
+static BOOL
+IoResultCheck(
+ DWORD err,
+ IoCtx_t * ctx,
+ const char * msg
+ )
+{
+ char * msgbuf;
+ BOOL dynbuf;
+
+ /* If the clock is not / no longer active, assume
+ * 'ERROR_OPERATION_ABORTED' and do the necessary cleanup.
+ */
+ if (ctx->rio && !ctx->rio->active)
+ err = ERROR_OPERATION_ABORTED;
+
+ switch (err)
+ {
+ /* The first ones are no real errors. */
+ case ERROR_SUCCESS: /* all is good */
+ case ERROR_IO_PENDING: /* callback pending */
+ return TRUE;
+
+ /* the next ones go silently -- only cleanup is done */
+ case ERROR_INVALID_PARAMETER: /* handle already closed */
+ case ERROR_OPERATION_ABORTED: /* handle closed while wait */
+ break;
+
+
+ default:
+ /*
+ * We have to resort to the low level error formatting
+ * functions here, since the error code can be an
+ * overlapped result. Relying the value to be the same
+ * as the 'GetLastError()' result at this point of
+ * execution is shaky at best, and using SetLastError()
+ * to force it seems too nasty.
+ */
+ msgbuf = NTstrerror(err, &dynbuf);
+ msyslog(LOG_ERR, "%s: err=%u, '%s'", msg, err, msgbuf);
+ if (dynbuf)
+ LocalFree(msgbuf);
+ break;
+ }
+
+ /* If we end here, we have to mop up the buffer and context */
+ if (ctx->flRawMem) {
+ if (ctx->trans_buf)
+ free(ctx->trans_buf);
+ } else {
+ if (ctx->recv_buf)
+ freerecvbuf(ctx->recv_buf);
+ }
+ IoCtxFree(ctx);
+ return FALSE;
+}
+
+/*
+ * -------------------------------------------------------------------
+ * Serial IO stuff
+ *
+ * Part 1 -- COMM event handling
+ * -------------------------------------------------------------------
+ */
+
+static BOOL
+QueueSerialWait(
+ RIO_t * rio,
+ recvbuf_t * buff,
+ IoCtx_t * lpo
+ )
+{
+ BOOL rc;
+
+ lpo->onIoDone = OnSerialWaitComplete;
+ lpo->recv_buf = buff;
+ lpo->flRawMem = 0;
+ lpo->rio = rio;
+ buff->fd = rio->fd;
+
+ rc = WaitCommEvent((HANDLE)_get_osfhandle(rio->fd),
+ &lpo->com_events, &lpo->ol);
+ if (!rc)
+ return IoResultCheck(GetLastError(), lpo,
+ "Can't wait on Refclock");
+ return TRUE;
+}
+
+/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
+
+static void
+OnSerialWaitComplete(
+ ULONG_PTR key,
+ IoCtx_t * lpo
+ )
+{
+ RIO_t * rio;
+ DevCtx_t * dev;
+ recvbuf_t * buff;
+ PPSDataEx_t * ppsbuf;
+ DWORD modem_status;
+ u_long covc;
+
+ /* check and bail out if operation failed */
+ if (!IoResultCheck(lpo->errCode, lpo,
+ "WaitCommEvent failed"))
+ return;
+
+ /* get & validate context and buffer. */
+ rio = (RIO_t *)key;
+ buff = lpo->recv_buf;
+ dev = lpo->devCtx;
+
+ NTP_INSIST(rio == lpo->rio);
+
+#ifdef DEBUG
+ if (~(EV_RXFLAG | EV_RLSD | EV_RXCHAR) & lpo->com_events) {
+ msyslog(LOG_ERR, "WaitCommEvent returned unexpected mask %x",
+ lpo->com_events);
+ exit(-1);
+ }
+#endif
+ /*
+ * Take note of changes on DCD; 'user mode PPS hack'.
+ * perlinger@ntp.org suggested a way of solving several problems with
+ * this code that makes a lot of sense: move to a putative
+ * dcdpps-ppsapi-provider.dll.
+ */
+ if (EV_RLSD & lpo->com_events) {
+ modem_status = 0;
+ GetCommModemStatus((HANDLE)_get_osfhandle(rio->fd),
+ &modem_status);
+
+ if (dev != NULL) {
+ /* PPS-context available -- use it! */
+ if (MS_RLSD_ON & modem_status) {
+ dev->pps_data.cc_assert++;
+ dev->pps_data.ts_assert = lpo->RecvTime;
+ DPRINTF(2, ("upps-real: fd %d DCD PPS Rise at %s\n", rio->fd,
+ ulfptoa(&lpo->RecvTime, 6)));
+ } else {
+ dev->pps_data.cc_clear++;
+ dev->pps_data.ts_clear = lpo->RecvTime;
+ DPRINTF(2, ("upps-real: fd %d DCD PPS Fall at %s\n", rio->fd,
+ ulfptoa(&lpo->RecvTime, 6)));
+ }
+ /*
+ ** Update PPS buffer, writing from low to high, with index
+ ** update as last action. We use interlocked ops and a
+ ** volatile data destination to avoid reordering on compiler
+ ** and CPU level. The interlocked instruction act as full
+ ** barriers -- we need only release semantics, but we don't
+ ** have them before VS2010.
+ */
+ covc = dev->cov_count + 1u;
+ ppsbuf = dev->pps_buff + (covc & PPS_QUEUE_MSK);
+ InterlockedExchange((PLONG)&ppsbuf->cov_count, covc);
+ ppsbuf->data = dev->pps_data;
+ InterlockedExchange((PLONG)&dev->cov_count, covc);
+ }
+ /* perlinger@ntp.org, 2012-11-19
+ It can be argued that once you have the PPS API active, you can
+ disable the old pps hack. This would give a behaviour that's much
+ more like the behaviour under a UN*Xish OS. On the other hand, it
+ will give a nasty surprise for people which have until now happily
+ taken the pps hack for granted, and after the first complaint, I have
+ decided to keep the old implementation unconditionally. So here it is:
+
+ /* backward compat: 'usermode-pps-hack' */
+ if (MS_RLSD_ON & modem_status) {
+ lpo->DCDSTime = lpo->RecvTime;
+ lpo->flTsDCDS = 1;
+ DPRINTF(2, ("upps-hack: fd %d DCD PPS Rise at %s\n", rio->fd,
+ ulfptoa(&lpo->RecvTime, 6)));
+ }
+ }
+
+ /* If IO ready, read data. Go back waiting else. */
+ if (EV_RXFLAG & lpo->com_events) { /* line discipline */
+ lpo->FlagTime = lpo->RecvTime;
+ lpo->flTsFlag = 1;
+ QueueSerialRead(rio, buff, lpo);
+ } else if (EV_RXCHAR & lpo->com_events) { /* raw discipline */
+ lpo->FlagTime = lpo->RecvTime;
+ lpo->flTsFlag = 1;
+ QueueRawSerialRead(rio, buff, lpo);
+ } else { /* idle... */
+ QueueSerialWait(rio, buff, lpo);
+ }
+}
+
+/*
+ * -------------------------------------------------------------------
+ * Serial IO stuff
+ *
+ * Part 2 -- line discipline emulation
+ *
+ * Ideally this should *not* be done in the IO completion thread.
+ * We use a worker pool thread to offload the low-level processing.
+ * -------------------------------------------------------------------
+ */
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * Start & Queue a serial read for line discipline emulation.
+ */
+static BOOL
+QueueSerialRead(
+ RIO_t * rio,
+ recvbuf_t * buff,
+ IoCtx_t * lpo
+ )
+{
+ BOOL rc;
+
+ lpo->onIoDone = &OnSerialReadComplete;
+ lpo->recv_buf = buff;
+ lpo->flRawMem = 0;
+ lpo->rio = rio;
+ buff->fd = rio->fd;
+
+ rc = ReadFile((HANDLE)_get_osfhandle(rio->fd),
+ (char*)buff->recv_buffer + buff->recv_length,
+ sizeof(buff->recv_buffer) - buff->recv_length,
+ NULL, &lpo->ol);
+ if (!rc)
+ return IoResultCheck(GetLastError(), lpo,
+ "Can't read from Refclock");
+ return TRUE;
+}
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * IO completion thread callback. Takes a time stamp and offloads the
+ * real work to the worker pool ASAP.
+ */
+static void
+OnSerialReadComplete(
+ ULONG_PTR key,
+ IoCtx_t * lpo
+ )
+{
+ RIO_t * rio;
+ recvbuf_t * buff;
+
+ /* check and bail out if operation failed */
+ if (!IoResultCheck(lpo->errCode, lpo,
+ "Read from Refclock failed"))
+ return;
+
+ /* get & validate context and buffer. */
+ rio = lpo->rio;
+ buff = lpo->recv_buf;
+ NTP_INSIST((ULONG_PTR)rio == key);
+
+ /* Offload to worker pool */
+ if (!QueueUserWorkItem(&OnSerialReadWorker, lpo, WT_EXECUTEDEFAULT)) {
+ msyslog(LOG_ERR,
+ "Can't offload to worker thread, will skip data: %m");
+ IoCtxReset(lpo);
+ buff->recv_length = 0;
+ QueueSerialWait(rio, buff, lpo);
+ }
+}
+
+
+/*
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ * Worker pool offload function -- avoid lengthy operations in the IO
+ * completion thread (affects timing...)
+ *
+ * This function does the real work of emulating the UN*X line
+ * discipline. Since this involves allocation of additional buffers and
+ * string parsing/copying, it is offloaded to the worker thread pool so
+ * the IO completion thread can resume faster.
+ */
+static DWORD WINAPI
+OnSerialReadWorker(void * ctx)
+{
+ IoCtx_t * lpo;
+ recvbuf_t * buff, *obuf;
+ RIO_t * rio;
+ char *sptr, *send, *dptr;
+ BOOL eol;
+ char ch;
+
+ /* Get context back */
+ lpo = (IoCtx_t*)ctx;
+ buff = lpo->recv_buf;
+ rio = lpo->rio;
+ /*
+ * ignore 0 bytes read due to closure on fd.
+ * Eat the first line of input as it's possibly partial.
+ */
+ if (lpo->byteCount && rio->recvcount++) {
+ /* account for additional input */
+ buff->recv_length += (int)lpo->byteCount;
+
+ /*
+ * Now mimic the Unix line discipline.
+ */
+ sptr = (char *)buff->recv_buffer;
+ send = sptr + buff->recv_length;
+ obuf = NULL;
+ dptr = NULL;
+
+ /* hack #1: eat away leading CR/LF if here is any */
+ while (sptr != send) {
+ ch = *sptr;
+ if (ch != '\n' && ch != '\r')
+ break;
+ sptr++;
+ }
+
+ while (sptr != send)
+ {
+ /* get new buffer to store line */
+ obuf = get_free_recv_buffer_alloc();
+ obuf->fd = rio->fd;
+ obuf->receiver = &process_refclock_packet;
+ obuf->dstadr = NULL;
+ obuf->recv_peer = rio->srcclock;
+ set_serial_recv_time(obuf, lpo);
+
+ /*
+ * Copy data to new buffer, convert CR to LF on
+ * the fly. Stop after either.
+ */
+ dptr = (char *)obuf->recv_buffer;
+ eol = FALSE;
+ while (sptr != send && !eol) {
+ ch = *sptr++;
+ if ('\r' == ch) {
+ ch = '\n';
+ }
+ *dptr++ = ch;
+ eol = ('\n' == ch);
+ }
+ obuf->recv_length =
+ (int)(dptr - (char *)obuf->recv_buffer);
+
+ /*
+ * If NL found, push this buffer and prepare to
+ * get a new one.
+ */
+ if (eol) {
+ add_full_recv_buffer(obuf);
+ SetEvent(WaitableIoEventHandle);
+ obuf = NULL;
+ }
+ }
+
+ /*
+ * If we still have an output buffer, continue to fill
+ * it again.
+ */
+ if (obuf) {
+ obuf->recv_length =
+ (int)(dptr - (char *)obuf->recv_buffer);
+ freerecvbuf(buff);
+ buff = obuf;
+ } else {
+ /* clear the current buffer, continue */
+ buff->recv_length = 0;
+ }
+ } else {
+ buff->recv_length = 0;
+ }
+
+ IoCtxReset(lpo);
+ QueueSerialWait(rio, buff, lpo);
+ return 0;
+}
+
+
+/*
+ * -------------------------------------------------------------------
+ * Serial IO stuff
+ *
+ * Part 3 -- raw data input
+ *
+ * Raw data processing is fast enough to do without offloading to the
+ * worker pool, so this is rather short'n sweet...
+ * -------------------------------------------------------------------
+ */
+
+static BOOL
+QueueRawSerialRead(
+ RIO_t * rio,
+ recvbuf_t * buff,
+ IoCtx_t * lpo
+ )
+{
+ BOOL rc;
+
+ lpo->onIoDone = OnRawSerialReadComplete;
+ lpo->recv_buf = buff;
+ lpo->flRawMem = 0;
+ lpo->rio = rio;
+ buff->fd = rio->fd;
+
+ rc = ReadFile((HANDLE)_get_osfhandle(rio->fd),
+ buff->recv_buffer,
+ sizeof(buff->recv_buffer),
+ NULL, &lpo->ol);
+ if (!rc)
+ return IoResultCheck(GetLastError(), lpo,
+ "Can't read raw from Refclock");
+ return TRUE;
+}
+
+
+static void
+OnRawSerialReadComplete(
+ ULONG_PTR key,
+ IoCtx_t * lpo
+ )
+{
+ RIO_t * rio;
+ recvbuf_t * buff;
+
+ /* check and bail out if operation failed */
+ if (!IoResultCheck(lpo->errCode, lpo,
+ "Raw read from Refclock failed"))
+ return;
+
+ /* get & validate context and buffer. */
+ rio = lpo->rio;
+ buff = lpo->recv_buf;
+ NTP_INSIST((ULONG_PTR)rio == key);
+
+ /* ignore 0 bytes read. */
+ if (lpo->byteCount > 0) {
+ buff->recv_length = (int)lpo->byteCount;
+ buff->dstadr = NULL;
+ buff->receiver = process_refclock_packet;
+ buff->recv_peer = rio->srcclock;
+ set_serial_recv_time(buff, lpo);
+ add_full_recv_buffer(buff);
+ SetEvent(WaitableIoEventHandle);
+ buff = get_free_recv_buffer_alloc();
+ }
+
+ buff->recv_length = 0;
+ QueueSerialWait(rio, buff, lpo);
+}
+
+
+static inline void
+set_serial_recv_time(
+ recvbuf_t * obuf,
+ IoCtx_t * lpo
+ )
+{
+ /*
+ * Time stamp assignment is interesting. If we
+ * have a DCD stamp, we use it, otherwise we use
+ * the FLAG char event time, and if that is also
+ * not / no longer available we use the arrival
+ * time.
+ */
+ if (lpo->flTsDCDS)
+ obuf->recv_time = lpo->DCDSTime;
+ else if (lpo->flTsFlag)
+ obuf->recv_time = lpo->FlagTime;
+ else
+ obuf->recv_time = lpo->RecvTime;
+
+ lpo->flTsDCDS = lpo->flTsFlag = 0; /* use only once... */
+}
+
+
+/*
+ * -------------------------------------------------------------------
+ * Serial IO stuff
+ *
+ * Part 4 -- Overlapped serial output
+ *
+ * Again, no need to offload any work.
+ * -------------------------------------------------------------------
+ */
+
+/*
+ * async_write, clone of write(), used by some reflock drivers
+ */
+int
+async_write(
+ int fd,
+ const void * data,
+ unsigned int count
+ )
+{
+ IoCtx_t * lpo;
+ BOOL rc;
+
+ lpo = IoCtxAlloc(NULL);
+ if (lpo == NULL) {
+ DPRINTF(1, ("async_write: out of memory\n"));
+ errno = ENOMEM;
+ return -1;
+ }
+
+ lpo->onIoDone = OnSerialWriteComplete;
+ lpo->trans_buf = emalloc(count);
+ lpo->flRawMem = 1;
+ memcpy(lpo->trans_buf, data, count);
+
+ rc = WriteFile((HANDLE)_get_osfhandle(fd),
+ lpo->trans_buf, count,
+ NULL, &lpo->ol);
+ if (!rc && !IoResultCheck(GetLastError(), lpo,
+ "Can't write to Refclock")) {
+ errno = EBADF;
+ return -1;
+ }
+ return count;
+}
+
+static void
+OnSerialWriteComplete(
+ ULONG_PTR key,
+ IoCtx_t * lpo
+ )
+{
+ /* set RIO and force silent cleanup if no error */
+ lpo->rio = (RIO_t *)key;
+ if (ERROR_SUCCESS == lpo->errCode)
+ lpo->errCode = ERROR_OPERATION_ABORTED;
+ IoResultCheck(lpo->errCode, lpo,
+ "Write to Refclock failed");
+}
+
+
+/*
+ * -------------------------------------------------------------------
+ * Serial IO stuff
+ *
+ * Part 5 -- read PPS time stamps
+ *
+ * -------------------------------------------------------------------
+ */
+
+/* The dummy read procedure is used for getting the device context
+ * into the IO completion thread, using the IO completion queue for
+ * transport. There are other ways to accomplish what we need here,
+ * but using the IO machine is handy and avoids a lot of trouble.
+ */
+static void
+OnPpsDummyRead(
+ ULONG_PTR key,
+ IoCtx_t * lpo
+ )
+{
+ RIO_t * rio;
+
+ rio = (RIO_t *)key;
+ lpo->devCtx = DevCtxAttach(rio->device_context);
+ SetEvent(lpo->ppswake);
+}
+
+__declspec(dllexport) void* __stdcall
+ntp_pps_attach_device(
+ HANDLE hndIo
+ )
+{
+ IoCtx_t myIoCtx;
+ HANDLE myEvt;
+ DevCtx_t * dev;
+ DWORD rc;
+
+ if (!isserialhandle(hndIo)) {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return NULL;
+ }
+
+ ZERO(myIoCtx);
+ dev = NULL;
+ myEvt = CreateEvent(NULL, FALSE, FALSE, NULL);
+ if (NULL == myEvt)
+ goto done;
+
+ myIoCtx.ppswake = myEvt;
+ myIoCtx.onIoDone = OnPpsDummyRead;
+ rc = ReadFile(hndIo, &myIoCtx.byteCount, 0,
+ &myIoCtx.byteCount, &myIoCtx.ol);
+ if (!rc && (GetLastError() != ERROR_IO_PENDING))
+ goto done;
+ if (WaitForSingleObject(myEvt, INFINITE) == WAIT_OBJECT_0)
+ if (NULL == (dev = myIoCtx.devCtx))
+ SetLastError(ERROR_INVALID_HANDLE);
+done:
+ rc = GetLastError();
+ CloseHandle(myEvt);
+ SetLastError(rc);
+ return dev;
+}
+
+__declspec(dllexport) void __stdcall
+ntp_pps_detach_device(
+ DevCtx_t * dev
+ )
+{
+ DevCtxDetach(dev);
+}
+
+__declspec(dllexport) BOOL __stdcall
+ntp_pps_read(
+ DevCtx_t * dev,
+ PPSData_t * data,
+ size_t dlen
+ )
+{
+ u_long guard, covc;
+ int repc;
+ PPSDataEx_t * ppsbuf;
+
+
+ if (dev == NULL) {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (data == NULL || dlen != sizeof(PPSData_t)) {
+ SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+ /*
+ ** Reading from shared memory in a lock-free fashion can be
+ ** a bit tricky, since we have to read the components in the
+ ** opposite direction from the write, and the compiler must
+ ** not reorder the read sequence.
+ ** We use interlocked ops and a volatile data source to avoid
+ ** reordering on compiler and CPU level. The interlocked
+ ** instruction act as full barriers -- we need only aquire
+ ** semantics, but we don't have them before VS2010.
+ */
+ repc = 3;
+ do {
+ InterlockedExchange((PLONG)&covc, dev->cov_count);
+ ppsbuf = dev->pps_buff + (covc & PPS_QUEUE_MSK);
+ *data = ppsbuf->data;
+ InterlockedExchange((PLONG)&guard, ppsbuf->cov_count);
+ guard ^= covc;
+ } while (guard && ~guard && --repc);
+
+ if (guard) {
+ SetLastError(ERROR_INVALID_DATA);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/*
+ * Add a reference clock data structures I/O handles to
+ * the I/O completion port. Return 1 if any error.
+ */
+int
+io_completion_port_add_clock_io(
+ RIO_t *rio
+ )
+{
+ IoCtx_t * lpo;
+ DevCtx_t * dev;
+ recvbuf_t * buff;
+ HANDLE h;
+
+ h = (HANDLE)_get_osfhandle(rio->fd);
+ if (NULL == CreateIoCompletionPort(
+ h,
+ hIoCompletionPort,
+ (ULONG_PTR)rio,
+ 0)) {
+ msyslog(LOG_ERR, "Can't add COM port to i/o completion port: %m");
+ return 1;
+ }
+
+ dev = DevCtxAlloc();
+ if (NULL == dev) {
+ msyslog(LOG_ERR, "Can't allocate device context for i/o completion port: %m");
+ return 1;
+ }
+ rio->device_context = DevCtxAttach(dev);
+ lpo = IoCtxAlloc(dev);
+ if (NULL == lpo) {
+ msyslog(LOG_ERR, "Can't allocate heap for completion port: %m");
+ return 1;
+ }
+ buff = get_free_recv_buffer_alloc();
+ buff->recv_length = 0;
+ QueueSerialWait(rio, buff, lpo);
+
+ return 0;
+}
+
+void
+io_completion_port_remove_clock_io(
+ RIO_t *rio
+ )
+{
+ if (rio)
+ DevCtxDetach((DevCtx_t *)rio->device_context);
+}
+
+/*
+ * Queue a receiver on a socket. Returns 0 if no buffer can be queued
+ *
+ * Note: As per the winsock documentation, we use WSARecvFrom. Using
+ * ReadFile() is less efficient.
+ */
+static BOOL
+QueueSocketRecv(
+ SOCKET s,
+ recvbuf_t * buff,
+ IoCtx_t * lpo
+ )
+{
+ WSABUF wsabuf;
+ DWORD Flags;
+ int rc;
+
+ lpo->onIoDone = OnSocketRecv;
+ lpo->recv_buf = buff;
+ lpo->flRawMem = 0;
+ lpo->rio = NULL;
+
+ Flags = 0;
+ buff->fd = s;
+ buff->recv_srcadr_len = sizeof(buff->recv_srcadr);
+ wsabuf.buf = (char *)buff->recv_buffer;
+ wsabuf.len = sizeof(buff->recv_buffer);
+
+ rc = WSARecvFrom(buff->fd, &wsabuf, 1, NULL, &Flags,
+ &buff->recv_srcadr.sa, &buff->recv_srcadr_len,
+ &lpo->ol, NULL);
+ if (SOCKET_ERROR == rc)
+ return IoResultCheck(GetLastError(), lpo,
+ "Can't read from Socket");
+ return TRUE;
+}
+
+
+static void
+OnSocketRecv(
+ ULONG_PTR key,
+ IoCtx_t * lpo
+ )
+{
+ recvbuf_t * buff;
+ recvbuf_t * newbuff;
+ struct interface * inter = (struct interface *)key;
+
+ NTP_REQUIRE(NULL != lpo);
+ NTP_REQUIRE(NULL != lpo->recv_buf);
+
+ /* check and bail out if operation failed */
+ if (!IoResultCheck(lpo->errCode, lpo,
+ "Read from Socket failed"))
+ return;
+
+ /*
+ * Convert the overlapped pointer back to a recvbuf pointer.
+ * Fetch items that are lost when the context is queued again.
+ */
+ buff = lpo->recv_buf;
+ buff->recv_time = lpo->RecvTime;
+ buff->recv_length = (int)lpo->byteCount;
+
+ /*
+ * Get a new recv buffer for the replacement socket receive
+ */
+ newbuff = get_free_recv_buffer_alloc();
+ if (NULL != newbuff) {
+ QueueSocketRecv(inter->fd, newbuff, lpo);
+ } else {
+ IoCtxFree(lpo);
+ msyslog(LOG_ERR, "Can't add I/O request to socket");
+ }
+ DPRINTF(4, ("%sfd %d %s recv packet mode is %d\n",
+ (MODE_BROADCAST == get_packet_mode(buff))
+ ? " **** Broadcast "
+ : "",
+ (int)buff->fd, stoa(&buff->recv_srcadr),
+ get_packet_mode(buff)));
+
+ /*
+ * If we keep it add some info to the structure
+ */
+ if (buff->recv_length && !inter->ignore_packets) {
+ NTP_INSIST(buff->recv_srcadr_len <=
+ sizeof(buff->recv_srcadr));
+ buff->receiver = &receive;
+ buff->dstadr = inter;
+ packets_received++;
+ handler_pkts++;
+ inter->received++;
+ add_full_recv_buffer(buff);
+
+ DPRINTF(2, ("Received %d bytes fd %d in buffer %p from %s\n",
+ buff->recv_length, (int)buff->fd, buff,
+ stoa(&buff->recv_srcadr)));
+
+ /*
+ * Now signal we have something to process
+ */
+ SetEvent(WaitableIoEventHandle);
+ } else
+ freerecvbuf(buff);
+}
+
+
+/*
+ * Add a socket handle to the I/O completion port, and send
+ * NTP_RECVS_PER_SOCKET recv requests to the kernel.
+ */
+int
+io_completion_port_add_socket(
+ SOCKET fd,
+ struct interface * inter
+ )
+{
+ IoCtx_t * lpo;
+ recvbuf_t * buff;
+ int n;
+
+ if (fd != INVALID_SOCKET) {
+ if (NULL == CreateIoCompletionPort((HANDLE)fd,
+ hIoCompletionPort, (ULONG_PTR)inter, 0)) {
+ msyslog(LOG_ERR,
+ "Can't add socket to i/o completion port: %m");
+ return 1;
+ }
+ }
+
+ /*
+ * Windows 2000 bluescreens with bugcheck 0x76
+ * PROCESS_HAS_LOCKED_PAGES at ntpd process
+ * termination when using more than one pending
+ * receive per socket. A runtime version test
+ * would allow using more on newer versions
+ * of Windows.
+ */
+
+#define WINDOWS_RECVS_PER_SOCKET 1
+
+ for (n = 0; n < WINDOWS_RECVS_PER_SOCKET; n++) {
+
+ buff = get_free_recv_buffer_alloc();
+ lpo = IoCtxAlloc(NULL);
+ if (lpo == NULL)
+ {
+ msyslog(LOG_ERR
+ , "Can't allocate IO completion context: %m");
+ return 1;
+ }
+
+ QueueSocketRecv(fd, buff, lpo);
+
+ }
+ return 0;
+}
+
+
+/*
+ * io_completion_port_sendto() -- sendto() replacement for Windows
+ *
+ * Returns len after successful send.
+ * Returns -1 for any error, with the error code available via
+ * msyslog() %m, or GetLastError().
+ */
+int
+io_completion_port_sendto(
+ int fd,
+ void * pkt,
+ size_t len,
+ sockaddr_u * dest
+ )
+{
+ static u_long time_next_ifscan_after_error;
+ WSABUF wsabuf;
+ DWORD octets_sent;
+ DWORD Result;
+ int errval;
+ int AddrLen;
+
+ wsabuf.buf = (void *)pkt;
+ wsabuf.len = len;
+ AddrLen = SOCKLEN(dest);
+ octets_sent = 0;
+
+ Result = WSASendTo(fd, &wsabuf, 1, &octets_sent, 0,
+ &dest->sa, AddrLen, NULL, NULL);
+ errval = GetLastError();
+ if (SOCKET_ERROR == Result) {
+ if (ERROR_UNEXP_NET_ERR == errval) {
+ /*
+ * We get this error when trying to send if the
+ * network interface is gone or has lost link.
+ * Rescan interfaces to catch on sooner, but no
+ * more often than once per minute. Once ntpd
+ * is able to detect changes without polling
+ * this should be unneccessary
+ */
+ if (time_next_ifscan_after_error < current_time) {
+ time_next_ifscan_after_error = current_time + 60;
+ timer_interfacetimeout(current_time);
+ }
+ DPRINTF(4, ("sendto unexpected network error, interface may be down\n"));
+ } else {
+ msyslog(LOG_ERR, "WSASendTo(%s) error %m",
+ stoa(dest));
+ }
+ SetLastError(errval);
+ return -1;
+ }
+
+ if (len != (int)octets_sent) {
+ msyslog(LOG_ERR, "WSASendTo(%s) sent %u of %d octets",
+ stoa(dest), octets_sent, len);
+ SetLastError(ERROR_BAD_LENGTH);
+ return -1;
+ }
+
+ DPRINTF(4, ("sendto %s %d octets\n", stoa(dest), len));
+
+ return len;
+}
+
+
+
+/*
+ * GetReceivedBuffers
+ * Note that this is in effect the main loop for processing requests
+ * both send and receive. This should be reimplemented
+ */
+int
+GetReceivedBuffers()
+{
+ DWORD index;
+ HANDLE ready;
+ int have_packet;
+
+ have_packet = FALSE;
+ while (!have_packet) {
+ index = WaitForMultipleObjects(ActiveWaitHandles,
+ WaitHandles, FALSE,
+ INFINITE);
+ switch (index) {
+
+ case WAIT_OBJECT_0 + 0: /* Io event */
+ DPRINTF(4, ("IoEvent occurred\n"));
+ have_packet = TRUE;
+ break;
+
+ case WAIT_OBJECT_0 + 1: /* exit request */
+ exit(0);
+ break;
+
+ case WAIT_OBJECT_0 + 2: /* timer */
+ timer();
+ break;
+
+ case WAIT_IO_COMPLETION: /* loop */
+ break;
+
+ case WAIT_TIMEOUT:
+ msyslog(LOG_ERR,
+ "WaitForMultipleObjects INFINITE timed out.");
+ exit(1);
+ break;
+
+ case WAIT_FAILED:
+ msyslog(LOG_ERR,
+ "WaitForMultipleObjects Failed: Error: %m");
+ exit(1);
+ break;
+
+ default:
+ DEBUG_INSIST((index - WAIT_OBJECT_0) <
+ ActiveWaitHandles);
+ ready = WaitHandles[index - WAIT_OBJECT_0];
+ handle_blocking_resp_sem(ready);
+ break;
+
+ } /* switch */
+ }
+
+ return (full_recvbuffs()); /* get received buffers */
+}
+
+#else
+ static int NonEmptyCompilationUnit;
+#endif
+
diff --git a/ports/winnt/ntpd/ntservice.c b/ports/winnt/ntpd/ntservice.c
new file mode 100644
index 000000000000..f0840bdb9d6a
--- /dev/null
+++ b/ports/winnt/ntpd/ntservice.c
@@ -0,0 +1,321 @@
+/*
+ * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 1999-2002 Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <stdio.h>
+
+#include <ntp_stdlib.h>
+#include "syslog.h"
+#include "ntpd.h"
+#include "ntservice.h"
+#include "clockstuff.h"
+#include "ntp_iocompletionport.h"
+#include "ntpd-opts.h"
+#include "isc/win32os.h"
+#include <ssl_applink.c>
+
+
+/*
+ * Globals
+ */
+static SERVICE_STATUS_HANDLE hServiceStatus = 0;
+static BOOL foreground = FALSE;
+static BOOL computer_shutting_down = FALSE;
+static int glb_argc;
+static char **glb_argv;
+HANDLE hServDoneEvent = NULL;
+extern int accept_wildcard_if_for_winnt;
+
+/*
+ * Forward declarations
+ */
+void uninit_io_completion_port();
+int ntpdmain(int argc, char *argv[]);
+void WINAPI ServiceControl(DWORD dwCtrlCode);
+void ntservice_exit(void);
+
+#ifdef WRAP_DBG_MALLOC
+void *wrap_dbg_malloc(size_t s, const char *f, int l);
+void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l);
+void wrap_dbg_free(void *p);
+#endif
+
+void WINAPI
+service_main(
+ DWORD argc,
+ LPTSTR *argv
+ )
+{
+ if (argc > 1) {
+ /*
+ * Let command line parameters from the Windows SCM GUI
+ * override the standard parameters from the ImagePath registry key.
+ */
+ glb_argc = argc;
+ glb_argv = argv;
+ }
+
+ ntpdmain(glb_argc, glb_argv);
+}
+
+
+/*
+ * This is the entry point for the executable
+ * We can call ntpdmain() explicitly or via StartServiceCtrlDispatcher()
+ * as we need to.
+ */
+int main(
+ int argc,
+ char ** argv
+ )
+{
+ int rc;
+ int argc_after_opts;
+ char ** argv_after_opts;
+
+ ssl_applink();
+
+ /* Save the command line parameters */
+ glb_argc = argc;
+ glb_argv = argv;
+
+ /* Under original Windows NT we must not discard the wildcard */
+ /* socket to workaround a bug in NT's getsockname(). */
+ if (isc_win32os_majorversion() <= 4)
+ accept_wildcard_if_for_winnt = TRUE;
+
+ argc_after_opts = argc;
+ argv_after_opts = argv;
+ parse_cmdline_opts(&argc_after_opts, &argv_after_opts);
+
+ if (HAVE_OPT(QUIT)
+ || HAVE_OPT(SAVECONFIGQUIT)
+ || HAVE_OPT(HELP)
+#ifdef DEBUG
+ || OPT_VALUE_SET_DEBUG_LEVEL != 0
+#endif
+ || HAVE_OPT(NOFORK))
+ foreground = TRUE;
+
+ if (foreground) /* run in console window */
+ rc = ntpdmain(argc, argv);
+ else {
+ /* Start up as service */
+
+ SERVICE_TABLE_ENTRY dispatchTable[] = {
+ { TEXT(NTP_DISPLAY_NAME), service_main },
+ { NULL, NULL }
+ };
+
+ rc = StartServiceCtrlDispatcher(dispatchTable);
+ if (rc)
+ rc = 0;
+ else {
+ rc = GetLastError();
+ fprintf(stderr,
+ "%s: unable to start as service:\n"
+ "%s\n"
+ "Use -d, -q, -n, -?, --help or "
+ "--saveconfigquit to run "
+ "interactive.\n",
+ argv[0], ntp_strerror(rc));
+ }
+ }
+ return rc;
+}
+
+
+/*
+ * Initialize the Service by registering it.
+ */
+void
+ntservice_init() {
+ char ConsoleTitle[256];
+
+ if (!foreground) {
+ /* Register handler with the SCM */
+ hServiceStatus = RegisterServiceCtrlHandler(NTP_DISPLAY_NAME,
+ ServiceControl);
+ if (!hServiceStatus) {
+ NTReportError(NTP_SERVICE_NAME,
+ "could not register service control handler");
+ exit(1);
+ }
+ UpdateSCM(SERVICE_RUNNING);
+ } else {
+ snprintf(ConsoleTitle, sizeof(ConsoleTitle),
+ "NTP Version %s", Version);
+ ConsoleTitle[sizeof(ConsoleTitle) - 1] = '\0';
+ SetConsoleTitle(ConsoleTitle);
+ }
+
+#ifdef _CRTDBG_MAP_ALLOC
+ /* ask the runtime to dump memory leaks at exit */
+ _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF
+ | _CRTDBG_LEAK_CHECK_DF /* report on leaks at exit */
+ | _CRTDBG_CHECK_ALWAYS_DF /* Check heap every alloc/dealloc */
+#ifdef MALLOC_LINT
+ | _CRTDBG_DELAY_FREE_MEM_DF /* Don't actually free memory */
+#endif
+ );
+#ifdef DOES_NOT_WORK
+ /*
+ * hart: I haven't seen this work, running ntpd.exe -n from a shell
+ * to both a file and the debugger output window. Docs indicate it
+ * should cause leak report to go to stderr, but it's only seen if
+ * ntpd runs under a debugger (in the debugger's output), even with
+ * this block of code enabled.
+ */
+ _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
+ _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+#endif
+#endif /* using MS debug C runtime heap, _CRTDBG_MAP_ALLOC */
+
+ atexit( ntservice_exit );
+}
+
+
+/*
+ * Routine to check if the service is stopping
+ * because the computer is shutting down
+ */
+BOOL
+ntservice_systemisshuttingdown() {
+ return computer_shutting_down;
+}
+
+void
+ntservice_exit( void )
+{
+ uninit_io_completion_port();
+ Sleep( 200 ); //##++
+
+ reset_winnt_time();
+
+ msyslog(LOG_INFO, "ntservice: The Network Time Protocol Service is stopping.");
+
+ if (!foreground) {
+ /* service mode, need to have the service_main routine
+ * register with the service control manager that the
+ * service has stopped running, before exiting
+ */
+ UpdateSCM(SERVICE_STOPPED);
+ }
+}
+
+/*
+ * ServiceControl(): Handles requests from the SCM and passes them on
+ * to the service.
+ */
+void WINAPI
+ServiceControl(
+ DWORD dwCtrlCode
+ )
+{
+ switch (dwCtrlCode) {
+
+ case SERVICE_CONTROL_SHUTDOWN:
+ computer_shutting_down = TRUE;
+ /* fall through to stop case */
+
+ case SERVICE_CONTROL_STOP:
+ if (WaitableExitEventHandle != NULL) {
+ SetEvent(WaitableExitEventHandle);
+ UpdateSCM(SERVICE_STOP_PENDING);
+ Sleep(100); //##++
+ }
+ return;
+
+ case SERVICE_CONTROL_PAUSE:
+ case SERVICE_CONTROL_CONTINUE:
+ case SERVICE_CONTROL_INTERROGATE:
+ default:
+ break;
+ }
+ UpdateSCM(SERVICE_RUNNING);
+}
+
+/*
+ * Tell the Service Control Manager the state of the service.
+ */
+void UpdateSCM(DWORD state) {
+ SERVICE_STATUS ss;
+ static DWORD dwState = SERVICE_STOPPED;
+
+ if (hServiceStatus) {
+ if (state)
+ dwState = state;
+
+ ZERO(ss);
+ ss.dwServiceType |= SERVICE_WIN32_OWN_PROCESS;
+ ss.dwCurrentState = dwState;
+ ss.dwControlsAccepted = SERVICE_ACCEPT_STOP |
+ SERVICE_ACCEPT_SHUTDOWN;
+ ss.dwCheckPoint = 0;
+ ss.dwServiceSpecificExitCode = 0;
+ ss.dwWin32ExitCode = NO_ERROR;
+ ss.dwWaitHint = dwState == SERVICE_STOP_PENDING ? 5000 : 1000;
+
+ SetServiceStatus(hServiceStatus, &ss);
+ }
+}
+
+BOOL WINAPI
+OnConsoleEvent(
+ DWORD dwCtrlType
+ )
+{
+ switch (dwCtrlType) {
+#ifdef DEBUG
+ case CTRL_BREAK_EVENT:
+ if (debug > 0) {
+ debug <<= 1;
+ }
+ else {
+ debug = 1;
+ }
+ if (debug > 8) {
+ debug = 0;
+ }
+ msyslog(LOG_DEBUG, "debug level %d", debug);
+ break;
+#else
+ case CTRL_BREAK_EVENT:
+ break;
+#endif
+
+ case CTRL_C_EVENT:
+ case CTRL_CLOSE_EVENT:
+ case CTRL_SHUTDOWN_EVENT:
+ if (WaitableExitEventHandle != NULL) {
+ SetEvent(WaitableExitEventHandle);
+ Sleep(100); //##++
+ }
+ break;
+
+ default :
+ /* pass to next handler */
+ return FALSE;
+ }
+
+ /* we've handled it, no more handlers should be called */
+ return TRUE;
+}
+
diff --git a/ports/winnt/ntptrace/ntptrace.dsp b/ports/winnt/ntptrace/ntptrace.dsp
new file mode 100644
index 000000000000..ed8616a37802
--- /dev/null
+++ b/ports/winnt/ntptrace/ntptrace.dsp
@@ -0,0 +1,153 @@
+# Microsoft Developer Studio Project File - Name="ntptrace" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=ntptrace - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "ntptrace.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "ntptrace.mak" CFG="ntptrace - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "ntptrace - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "ntptrace - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""$/ntp/dev/ports/winnt/ntptrace", AXBAAAAA"
+# PROP Scc_LocalPath "."
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "ntptrace - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MT /W4 /GX /O2 /I "\\" /I "$(OPENSSL)\inc32" /I "." /I "..\include" /I "..\..\..\include" /D "NDEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "__STDC__" /D "SYS_WINNT" /D "HAVE_CONFIG_H" /D _WIN32_WINNT=0x400 /YX"windows.h" /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib /nologo /subsystem:console /machine:I386
+
+!ELSEIF "$(CFG)" == "ntptrace - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MTd /W4 /Gm /GX /ZI /Od /I "." /I "..\include" /I "..\..\..\include" /I "$(OPENSSL)\inc32" /D "_DEBUG" /D "_CONSOLE" /D "WIN32" /D "_MBCS" /D "__STDC__" /D "SYS_WINNT" /D "HAVE_CONFIG_H" /D _WIN32_WINNT=0x400 /FR /YX"windows.h" /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../bin/Debug/ntptrace.exe" /pdbtype:sept
+
+!ENDIF
+
+# Begin Target
+
+# Name "ntptrace - Win32 Release"
+# Name "ntptrace - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\..\ntptrace\ntptrace.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\libntp\util_clockstuff.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\version.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=..\include\sys\ioctl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\..\ntptrace\ntptrace.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\sys\resource.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Source File
+
+SOURCE=..\..\..\configure
+
+!IF "$(CFG)" == "ntptrace - Win32 Release"
+
+# Begin Custom Build
+ProjDir=.
+InputPath=..\..\..\configure
+
+"$(ProjDir)\version.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ echo Using NT Shell Script to generate version.c
+ ..\scripts\mkver.bat -P ntptrace
+
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "ntptrace - Win32 Debug"
+
+# Begin Custom Build
+ProjDir=.
+InputPath=..\..\..\configure
+
+"$(ProjDir)\version.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ echo Using NT Shell Script to generate version.c
+ ..\scripts\mkver.bat -P ntptrace
+
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Target
+# End Project
diff --git a/ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.h b/ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.h
new file mode 100644
index 000000000000..1007ccdd90c3
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.h
@@ -0,0 +1,714 @@
+/***********************************************************************
+ * *
+ * Copyright (c) David L. Mills 1999-2000 *
+ * *
+ * Permission to use, copy, modify, and distribute this software and *
+ * its documentation for any purpose and 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 *
+ * 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 makes no *
+ * representations about the suitability this software for any *
+ * purpose. It is provided "as is" without express or implied *
+ * warranty. *
+ * *
+ ***********************************************************************
+ * *
+ * This header file complies with "Pulse-Per-Second API for UNIX-like *
+ * Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
+ * and Marc Brett, from whom much of this code was shamelessly stolen. *
+ * *
+ * This modified timepps.h can be used to provide a PPSAPI interface *
+ * to a machine running Windows with a suitably modified *
+ * serialpps.sys being used in place of serial.sys. It can *
+ * be extended to support a modified parallel port driver once *
+ * available. *
+ * *
+ * This Windows version was derived by Dave Hart *
+ * <davehart@davehart.com> from Mills' timepps-Solaris.h *
+ * *
+ ***********************************************************************
+ * *
+ * Some of this include file *
+ * Copyright (c) 1999 by Ulrich Windl, *
+ * based on code by Reg Clemens <reg@dwf.com> *
+ * based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
+ * *
+ ***********************************************************************
+ * *
+ * "THE BEER-WARE LICENSE" (Revision 42): *
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this *
+ * notice you can do whatever you want with this stuff. If we meet some*
+ * day, and you think this stuff is worth it, you can buy me a beer *
+ * in return. Poul-Henning Kamp *
+ * *
+ **********************************************************************/
+
+#ifndef _SYS_TIMEPPS_H_
+#define _SYS_TIMEPPS_H_
+
+/* Implementation note: the logical states ``assert'' and ``clear''
+ * are implemented in terms of the UART register, i.e. ``assert''
+ * means the bit is set.
+ */
+
+/*
+ * The following definitions are architecture independent
+ */
+
+#define PPS_API_VERS_1 1 /* API version number */
+#define PPS_JAN_1970 2208988800UL /* 1970 - 1900 in seconds */
+#define PPS_NANOSECOND 1000000000L /* one nanosecond in decimal */
+#define PPS_FRAC 4294967296. /* 2^32 as a double */
+#define PPS_HECTONANOSECONDS 10000000 /* 100ns units in a second */
+#define PPS_FILETIME_1970 0x019db1ded53e8000 /* unix epoch to Windows */
+
+#define PPS_NORMALIZE(x) /* normalize timespec */ \
+ do { \
+ if ((x).tv_nsec >= PPS_NANOSECOND) { \
+ (x).tv_nsec -= PPS_NANOSECOND; \
+ (x).tv_sec++; \
+ } else if ((x).tv_nsec < 0) { \
+ (x).tv_nsec += PPS_NANOSECOND; \
+ (x).tv_sec--; \
+ } \
+ } while (0)
+
+#define PPS_TSPECTONTP(x) /* convert timespec to ntp_fp */ \
+ do { \
+ double d_temp; \
+ \
+ (x).integral += (unsigned int)PPS_JAN_1970; \
+ d_temp = (x).fractional * PPS_FRAC / PPS_NANOSECOND; \
+ if (d_temp >= PPS_FRAC) \
+ (x).integral++; \
+ (x).fractional = (unsigned int)d_temp; \
+ } while (0)
+
+#define PPS_NTPTOTSPEC(x) /* convert ntp_fp to timespec */ \
+ do { \
+ double d_temp; \
+ \
+ (x).tv_sec -= (time_t)PPS_JAN_1970; \
+ d_temp = (double)((x).tv_nsec); \
+ d_temp *= PPS_NANOSECOND; \
+ d_temp /= PPS_FRAC; \
+ (x).tv_nsec = (long)d_temp; \
+ } while (0)
+
+
+/*
+ * Device/implementation parameters (mode)
+ */
+
+#define PPS_CAPTUREASSERT 0x01 /* capture assert events */
+#define PPS_CAPTURECLEAR 0x02 /* capture clear events */
+#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
+
+#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
+#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
+#define PPS_OFFSETBOTH 0x30 /* apply compensation for both */
+
+#define PPS_CANWAIT 0x100 /* Can we wait for an event? */
+#define PPS_CANPOLL 0x200 /* "This bit is reserved for */
+
+/*
+ * Kernel actions (mode)
+ */
+
+#define PPS_ECHOASSERT 0x40 /* feed back assert event to output */
+#define PPS_ECHOCLEAR 0x80 /* feed back clear event to output */
+
+/*
+ * Timestamp formats (tsformat)
+ */
+
+#define PPS_TSFMT_TSPEC 0x1000 /* select timespec format */
+#define PPS_TSFMT_NTPFP 0x2000 /* select NTP format */
+
+/*
+ * Kernel discipline actions (not used in Windows yet)
+ */
+
+#define PPS_KC_HARDPPS 0 /* enable kernel consumer */
+#define PPS_KC_HARDPPS_PLL 1 /* phase-lock mode */
+#define PPS_KC_HARDPPS_FLL 2 /* frequency-lock mode */
+
+/*
+ * Type definitions
+ */
+
+typedef unsigned long pps_seq_t; /* sequence number */
+
+#pragma warning(push)
+#pragma warning(disable: 201) /* nonstd extension nameless union */
+
+typedef struct ntp_fp {
+ union ntp_fp_sec {
+ unsigned int integral;
+ int s_integral;
+ };
+ unsigned int fractional;
+} ntp_fp_t; /* NTP-compatible time stamp */
+
+#pragma warning(pop)
+
+typedef union pps_timeu { /* timestamp format */
+ struct timespec tspec;
+ ntp_fp_t ntpfp;
+ unsigned long longpad[3];
+} pps_timeu_t; /* generic data type to represent time stamps */
+
+/* addition of NTP fixed-point format */
+
+#define NTPFP_M_ADD(r_i, r_f, a_i, a_f) /* r += a */ \
+ do { \
+ register u_int32 lo_tmp; \
+ register u_int32 hi_tmp; \
+ \
+ lo_tmp = ((r_f) & 0xffff) + ((a_f) & 0xffff); \
+ hi_tmp = (((r_f) >> 16) & 0xffff) + (((a_f) >> 16) & 0xffff); \
+ if (lo_tmp & 0x10000) \
+ hi_tmp++; \
+ (r_f) = ((hi_tmp & 0xffff) << 16) | (lo_tmp & 0xffff); \
+ \
+ (r_i) += (a_i); \
+ if (hi_tmp & 0x10000) \
+ (r_i)++; \
+ } while (0)
+
+#define NTPFP_L_ADDS(r, a) NTPFP_M_ADD((r)->integral, (r)->fractional, \
+ (a)->s_integral, (a)->fractional)
+
+
+/*
+ * Timestamp information structure
+ */
+
+typedef struct pps_info {
+ pps_seq_t assert_sequence; /* seq. num. of assert event */
+ pps_seq_t clear_sequence; /* seq. num. of clear event */
+ pps_timeu_t assert_tu; /* time of assert event */
+ pps_timeu_t clear_tu; /* time of clear event */
+ int current_mode; /* current mode bits */
+} pps_info_t;
+
+#define assert_timestamp assert_tu.tspec
+#define clear_timestamp clear_tu.tspec
+
+#define assert_timestamp_ntpfp assert_tu.ntpfp
+#define clear_timestamp_ntpfp clear_tu.ntpfp
+
+/*
+ * Parameter structure
+ */
+
+typedef struct pps_params {
+ int api_version; /* API version # */
+ int mode; /* mode bits */
+ pps_timeu_t assert_off_tu; /* offset compensation for assert */
+ pps_timeu_t clear_off_tu; /* offset compensation for clear */
+} pps_params_t;
+
+#define assert_offset assert_off_tu.tspec
+#define clear_offset clear_off_tu.tspec
+
+#define assert_offset_ntpfp assert_off_tu.ntpfp
+#define clear_offset_ntpfp clear_off_tu.ntpfp
+
+/*
+ * The following definitions are architecture-dependent
+ */
+
+#define PPS_CAP (PPS_CAPTUREASSERT | PPS_OFFSETASSERT | PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)
+#define PPS_RO (PPS_CANWAIT | PPS_CANPOLL)
+
+typedef struct {
+ int filedes; /* file descriptor */
+ OVERLAPPED ol; /* caches ol.hEvent for DeviceIoControl */
+ pps_params_t params; /* PPS parameters set by user */
+} pps_unit_t;
+
+typedef pps_unit_t* pps_handle_t; /* pps handlebars */
+
+/*
+ *------ Here begins the implementation-specific part! ------
+ */
+
+#include <windows.h>
+#include <errno.h>
+
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP 45
+#endif
+
+typedef struct _OLD_SERIAL_PPS_STAMPS {
+ LARGE_INTEGER Timestamp;
+ LARGE_INTEGER Counterstamp;
+} OLD_SERIAL_PPS_STAMPS, *POLDSERIAL_PPS_STAMPS;
+
+typedef struct _SERIAL_PPS_STAMPS {
+ LARGE_INTEGER Timestamp;
+ LARGE_INTEGER Counterstamp;
+ DWORD SeqNum;
+} SERIAL_PPS_STAMPS, *PSERIAL_PPS_STAMPS;
+
+#define IOCTL_SERIAL_GET_PPS_STAMPS CTL_CODE(FILE_DEVICE_SERIAL_PORT,114,METHOD_BUFFERED,FILE_ANY_ACCESS)
+
+/* byte offset of member m in struct typedef s */
+#define PPS_OFFSETOF(m,s) (size_t)(&((s *)0)->m)
+
+/*
+ * ntpd on Windows only looks to errno after finding
+ * GetLastError returns NO_ERROR. To accomodate its
+ * use of msyslog in portable code such as refclock_atom.c,
+ * this implementation always clears the Windows
+ * error code using SetLastError(NO_ERROR) when
+ * returning an errno. This is also a good idea
+ * for any non-ntpd clients as they should use only
+ * the errno for PPSAPI functions.
+ */
+#define RETURN_PPS_ERRNO(e) \
+do { \
+ SetLastError(NO_ERROR); \
+ errno = (e); \
+ return -1; \
+} while (0)
+
+
+#ifdef OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER
+extern void pps_ntp_timestamp_from_counter(ntp_fp_t *, ULONGLONG, ULONGLONG);
+#else
+/*
+ * helper routine for serialpps.sys ioctl which returns
+ * performance counter "timestamp" as well as a system
+ * FILETIME timestamp. Converts one of the inputs to
+ * NTP fixed-point format.
+ */
+static inline void
+pps_ntp_timestamp_from_counter(
+ ntp_fp_t *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp)
+{
+ ULONGLONG BiasedTimestamp;
+
+ /* convert from 100ns units to NTP fixed point format */
+
+ BiasedTimestamp = Timestamp - PPS_FILETIME_1970;
+ result->integral = PPS_JAN_1970 +
+ (unsigned)(BiasedTimestamp / PPS_HECTONANOSECONDS);
+ result->fractional =
+ (unsigned) ((BiasedTimestamp % PPS_HECTONANOSECONDS) *
+ (PPS_FRAC / PPS_HECTONANOSECONDS));
+}
+#endif
+
+
+/*
+ * create PPS handle from file descriptor
+ */
+
+static inline int
+time_pps_create(
+ int filedes, /* file descriptor */
+ pps_handle_t *handle /* returned handle */
+ )
+{
+ OLD_SERIAL_PPS_STAMPS old_pps_stamps;
+ DWORD bytes;
+ OVERLAPPED ol;
+
+ /*
+ * Check for valid arguments and attach PPS signal.
+ */
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ if (PPS_OFFSETOF(tspec.tv_nsec, pps_timeu_t) !=
+ PPS_OFFSETOF(ntpfp.fractional, pps_timeu_t)) {
+ fprintf(stderr,
+ "timepps.h needs work, union of \n"
+ "unsigned int ntp_fp.integral and\n"
+ "time_t timespec.tv_sec accessed\n"
+ "interchangeably.\n");
+ RETURN_PPS_ERRNO(EFAULT);
+ }
+
+ /*
+ * For this ioctl which will never block, we don't want to go
+ * through the overhead of a completion port, so we use an
+ * event handle in the overlapped structure with its 1 bit set.
+ *
+ * From GetQueuedCompletionStatus docs:
+ * Even if you have passed the function a file handle associated
+ * with a completion port and a valid OVERLAPPED structure, an
+ * application can prevent completion port notification. This is
+ * done by specifying a valid event handle for the hEvent member
+ * of the OVERLAPPED structure, and setting its low-order bit. A
+ * valid event handle whose low-order bit is set keeps I/O
+ * completion from being queued to the completion port.
+ */
+
+ ol.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ ol.hEvent = (HANDLE) ((ULONG_PTR)ol.hEvent | 1);
+
+ if (FALSE == DeviceIoControl(
+ (HANDLE)_get_osfhandle(filedes),
+ IOCTL_SERIAL_GET_PPS_STAMPS,
+ NULL,
+ 0,
+ &old_pps_stamps,
+ sizeof(old_pps_stamps),
+ &bytes,
+ &ol)
+ || sizeof(old_pps_stamps) != bytes) {
+
+ /*
+ * If you want to write some dead code this could detect the
+ * IOCTL being pended, but the driver always has the info
+ * instantly, so ERROR_IO_PENDING isn't a concern.
+ */
+
+ CloseHandle(ol.hEvent);
+ fprintf(stderr,
+ "time_pps_create: IOCTL_SERIAL_GET_PPS_STAMPS: %d %d\n",
+ bytes,
+ GetLastError());
+ RETURN_PPS_ERRNO(ENXIO);
+ }
+
+ /*
+ * Allocate and initialize default unit structure.
+ */
+
+ *handle = malloc(sizeof(pps_unit_t));
+ if (!(*handle))
+ RETURN_PPS_ERRNO(ENOMEM);
+
+ memset(*handle, 0, sizeof(pps_unit_t));
+ (*handle)->filedes = filedes;
+ (*handle)->ol.hEvent = ol.hEvent;
+ (*handle)->params.api_version = PPS_API_VERS_1;
+ (*handle)->params.mode = PPS_CAPTUREASSERT | PPS_TSFMT_TSPEC;
+ return (0);
+}
+
+/*
+ * release PPS handle
+ */
+
+static inline int
+time_pps_destroy(
+ pps_handle_t handle
+ )
+{
+ /*
+ * Check for valid arguments and detach PPS signal.
+ */
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ CloseHandle(handle->ol.hEvent);
+ free(handle);
+ return (0);
+}
+
+/*
+ * set parameters for handle
+ */
+
+static inline int
+time_pps_setparams(
+ pps_handle_t handle,
+ const pps_params_t *params
+ )
+{
+ int mode, mode_in;
+ /*
+ * Check for valid arguments and set parameters.
+ */
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (!params)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ /*
+ * There was no reasonable consensu in the API working group.
+ * I require `api_version' to be set!
+ */
+
+ if (params->api_version != PPS_API_VERS_1)
+ RETURN_PPS_ERRNO(EINVAL);
+
+ /*
+ * only settable modes are PPS_CAPTUREASSERT and PPS_OFFSETASSERT
+ */
+
+ mode_in = params->mode;
+
+ /*
+ * Only one of the time formats may be selected
+ * if a nonzero assert offset is supplied.
+ */
+ if ((mode_in & (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)) ==
+ (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)) {
+
+ if (handle->params.assert_offset.tv_sec ||
+ handle->params.assert_offset.tv_nsec)
+
+ RETURN_PPS_ERRNO(EINVAL);
+
+ /*
+ * If no offset was specified but both time
+ * format flags are used consider it harmless
+ * but turn off PPS_TSFMT_NTPFP so getparams
+ * will not show both formats lit.
+ */
+ mode_in &= ~PPS_TSFMT_NTPFP;
+ }
+
+ /* turn off read-only bits */
+
+ mode_in &= ~PPS_RO;
+
+ /*
+ * test remaining bits, should only have captureassert,
+ * offsetassert, and/or timestamp format bits.
+ */
+
+ if (mode_in & ~(PPS_CAPTUREASSERT | PPS_OFFSETASSERT |
+ PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP))
+ RETURN_PPS_ERRNO(EOPNOTSUPP);
+
+ /*
+ * ok, ready to go.
+ */
+
+ mode = handle->params.mode;
+ handle->params = *params;
+ handle->params.mode = mode | mode_in;
+ handle->params.api_version = PPS_API_VERS_1;
+ return (0);
+}
+
+/*
+ * get parameters for handle
+ */
+
+static inline int
+time_pps_getparams(
+ pps_handle_t handle,
+ pps_params_t *params
+ )
+{
+ /*
+ * Check for valid arguments and get parameters.
+ */
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (!params)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ *params = handle->params;
+ return (0);
+}
+
+/* (
+ * get capabilities for handle
+ */
+
+static inline int
+time_pps_getcap(
+ pps_handle_t handle,
+ int *mode
+ )
+{
+ /*
+ * Check for valid arguments and get capabilities.
+ */
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (!mode)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ *mode = PPS_CAP;
+ return (0);
+}
+
+/*
+ * Fetch timestamps
+ */
+
+static inline int
+time_pps_fetch(
+ pps_handle_t handle,
+ const int tsformat,
+ pps_info_t *ppsinfo,
+ const struct timespec *timeout
+ )
+{
+ SERIAL_PPS_STAMPS pps_stamps;
+ pps_info_t infobuf;
+ BOOL rc;
+ DWORD bytes;
+ DWORD lasterr;
+
+ /*
+ * Check for valid arguments and fetch timestamps
+ */
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (!ppsinfo)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ /*
+ * nb. PPS_CANWAIT is NOT set by the implementation, we can totally
+ * ignore the timeout variable.
+ */
+
+ memset(&infobuf, 0, sizeof(infobuf));
+
+ /*
+ * if not captureassert, nothing to return.
+ */
+
+ if (!handle->params.mode & PPS_CAPTUREASSERT) {
+ *ppsinfo = infobuf;
+ return (0);
+ }
+
+ /*
+ * First rev of serialpps.sys didn't support the SeqNum field,
+ * support it by simply returning constant 0 for serial in that case.
+ */
+ pps_stamps.SeqNum = 0;
+
+ /*
+ * interrogate (hopefully) serialpps.sys
+ * if it's the standard serial.sys or another driver,
+ * IOCTL_SERIAL_GET_PPS_STAMPS is most likely unknown
+ * and will result in ERROR_INVALID_PARAMETER.
+ */
+ bytes = 0;
+
+ rc = DeviceIoControl(
+ (HANDLE)_get_osfhandle(handle->filedes),
+ IOCTL_SERIAL_GET_PPS_STAMPS,
+ NULL,
+ 0,
+ &pps_stamps,
+ sizeof(pps_stamps),
+ &bytes,
+ &handle->ol);
+
+ if (!rc) {
+
+ lasterr = GetLastError();
+ if (ERROR_INVALID_PARAMETER != lasterr)
+ fprintf(stderr, "time_pps_fetch: ioctl err %d\n",
+ lasterr);
+ RETURN_PPS_ERRNO(EOPNOTSUPP);
+
+ } else if (bytes != sizeof(pps_stamps) &&
+ bytes != sizeof(OLD_SERIAL_PPS_STAMPS)) {
+
+ fprintf(stderr,
+ "time_pps_fetch: wanted %d or %d bytes got %d from "
+ "IOCTL_SERIAL_GET_PPS_STAMPS 0x%x\n" ,
+ sizeof(OLD_SERIAL_PPS_STAMPS),
+ sizeof(SERIAL_PPS_STAMPS),
+ bytes,
+ IOCTL_SERIAL_GET_PPS_STAMPS);
+ RETURN_PPS_ERRNO(ENXIO);
+ }
+
+ /*
+ * pps_ntp_timestamp_from_counter takes the two flavors
+ * of timestamp we have (counter and system time) and
+ * uses whichever it can to give the best NTP fixed-point
+ * conversion. In ntpd the Counterstamp is typically
+ * used. A stub implementation in this file simply
+ * converts from Windows Timestamp to NTP fixed-point.
+ */
+ pps_ntp_timestamp_from_counter(
+ &infobuf.assert_timestamp_ntpfp,
+ pps_stamps.Timestamp.QuadPart,
+ pps_stamps.Counterstamp.QuadPart);
+
+ /*
+ * Note that only assert timestamps
+ * are captured by this interface.
+ */
+
+ infobuf.assert_sequence = pps_stamps.SeqNum;
+
+ /*
+ * Apply offset and translate to specified format
+ */
+
+ switch (tsformat) {
+ case PPS_TSFMT_NTPFP: /* NTP format requires no translation */
+ if (handle->params.mode & PPS_OFFSETASSERT) {
+ NTPFP_L_ADDS(&infobuf.assert_timestamp_ntpfp,
+ &handle->params.assert_offset_ntpfp);
+ }
+ break;
+
+ case PPS_TSFMT_TSPEC: /* timespec format requires conversion to nsecs form */
+ PPS_NTPTOTSPEC(infobuf.assert_timestamp);
+ if (handle->params.mode & PPS_OFFSETASSERT) {
+ infobuf.assert_timestamp.tv_sec +=
+ handle->params.assert_offset.tv_sec;
+ infobuf.assert_timestamp.tv_nsec +=
+ handle->params.assert_offset.tv_nsec;
+ PPS_NORMALIZE(infobuf.assert_timestamp);
+ }
+ break;
+
+ default:
+ RETURN_PPS_ERRNO(EINVAL);
+ }
+
+ infobuf.current_mode = handle->params.mode;
+ *ppsinfo = infobuf;
+ return (0);
+}
+
+/*
+ * time_pps_kcbind - specify kernel consumer
+ *
+ * Not supported so far by Windows.
+ */
+
+static inline int
+time_pps_kcbind(
+ pps_handle_t handle,
+ const int kernel_consumer,
+ const int edge, const int tsformat
+ )
+{
+ /*
+ * Check for valid arguments before revealing the ugly truth
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ RETURN_PPS_ERRNO(EOPNOTSUPP);
+}
+
+
+
+#endif /* _SYS_TIMEPPS_H_ */
diff --git a/ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.txt b/ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.txt
new file mode 100644
index 000000000000..e335d4dfd9a1
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/monolithic-serialpps-timepps.txt
@@ -0,0 +1,52 @@
+/***********************************************************************
+ * *
+ * Copyright (c) David L. Mills 1999-2000 *
+ * *
+ * Permission to use, copy, modify, and distribute this software and *
+ * its documentation for any purpose and 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 *
+ * 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 makes no *
+ * representations about the suitability this software for any *
+ * purpose. It is provided "as is" without express or implied *
+ * warranty. *
+ * *
+ ***********************************************************************
+ * *
+ * This header file complies with "Pulse-Per-Second API for UNIX-like *
+ * Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
+ * and Marc Brett, from whom much of this code was shamelessly stolen. *
+ * *
+ * This modified timepps.h can be used to provide a PPSAPI interface *
+ * to a machine running Windows with a suitably modified *
+ * serialpps.sys being used in place of serial.sys. It can *
+ * be extended to support a modified parallel port driver once *
+ * available. *
+ * *
+ * This Windows version was derived by Dave Hart *
+ * <davehart@davehart.com> from Mills' timepps-Solaris.h *
+ * *
+ ***********************************************************************
+ * *
+ * Some of this include file *
+ * Copyright (c) 1999 by Ulrich Windl, *
+ * based on code by Reg Clemens <reg@dwf.com> *
+ * based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
+ * *
+ ***********************************************************************
+ * *
+ * "THE BEER-WARE LICENSE" (Revision 42): *
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this *
+ * notice you can do whatever you want with this stuff. If we meet some*
+ * day, and you think this stuff is worth it, you can buy me a beer *
+ * in return. Poul-Henning Kamp *
+ * *
+ **********************************************************************/
+
+timepps.h implements IETF RFC "Pulse-Per-Second API for UNIX-like
+Operating Systems, Version 1.0" for Microsoft Windows.
+
+
diff --git a/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.c b/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.c
new file mode 100644
index 000000000000..4a708f4c0b5b
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.c
@@ -0,0 +1,465 @@
+/*
+ * loopback-ppsapi-provider.c - derived from monolithic timepps.h
+ * for usermode PPS by Juergen Perlinger
+ */
+
+/***********************************************************************
+ * *
+ * Copyright (c) David L. Mills 1999-2009 *
+ * *
+ * Permission to use, copy, modify, and distribute this software and *
+ * its documentation for any purpose and 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 *
+ * 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 makes no *
+ * representations about the suitability this software for any *
+ * purpose. It is provided "as is" without express or implied *
+ * warranty. *
+ * *
+ ***********************************************************************
+ * *
+ * This header file complies with "Pulse-Per-Second API for UNIX-like *
+ * Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
+ * and Marc Brett, from whom much of this code was shamelessly stolen. *
+ * *
+ * This serialpps-ppsapi-provider.dll implements the PPSAPI provider *
+ * for serialpps.sys, which is a very lightly patched Windows *
+ * serial.sys with CD timestamping support.
+ * *
+ * This Windows version was derived by Dave Hart *
+ * <davehart@davehart.com> from David L. Mills' timepps-Solaris.h *
+ * *
+ ***********************************************************************
+ * *
+ * Some of this include file *
+ * Copyright (c) 1999 by Ulrich Windl, *
+ * based on code by Reg Clemens <reg@dwf.com> *
+ * based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
+ * *
+ ***********************************************************************
+ * *
+ * "THE BEER-WARE LICENSE" (Revision 42): *
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this *
+ * notice you can do whatever you want with this stuff. If we meet some*
+ * day, and you think this stuff is worth it, you can buy me a beer *
+ * in return. Poul-Henning Kamp *
+ * *
+ **********************************************************************/
+
+/*
+ * Implementation note: the logical states ``assert'' and ``clear''
+ * are implemented in terms of the UART register, i.e. ``assert''
+ * means the bit is set. This follows the sense of the serial driver
+ * of the Windows OS, and is opposite of the RS-232 spec for the
+ * CD/DCD logical state.
+ */
+
+
+#define PPSAPI_PROVIDER_EXPORTS
+#include "loopback-ppsapi.h"
+
+/*
+** global stuff
+*/
+
+pcreate_pps_handle p_create_pps_handle;
+
+#define SERIALPPS_CAPS (PPS_CAPTUREBOTH | PPS_OFFSETBOTH | PPS_TSFMT_BOTH)
+#define SERIALPPS_RO (PPS_CANWAIT | PPS_CANPOLL)
+
+
+/*
+ * The ntp_timestamp_from_counter callback into timepps.h routines in
+ * the host is saved in each unit separately, so that binaries that
+ * inline timepps.h into multiple source files (such as refclock_atom.c
+ * and a number of other ntpd refclocks including refclock_nmea.c) will
+ * get called back in the correct instance for each unit. This assumes
+ * that ppsapi_prov_init for subsequent instances happens only after the
+ * first instance has completed all time_pps_create() calls it will
+ * invoke, which is a safe assumption at least for ntpd.
+ */
+struct loopback_unit {
+ HANDLE hnd_dev; /* true device handle */
+ HANDLE hnd_pps; /* loopback handle */
+ ntp_fp_t ofs_assert; /* correction for assert*/
+ ntp_fp_t ofs_clear; /* correction for clear */
+};
+typedef struct loopback_unit loopback_unit;
+
+/*
+ * --------------------------------------------------------------------
+ * DllMain - DLL entrypoint, no-op.
+ * --------------------------------------------------------------------
+ */
+BOOL APIENTRY DllMain(
+ HMODULE hModule,
+ DWORD why,
+ LPVOID lpReserved
+ )
+{
+ UNUSED(hModule);
+ UNUSED(lpReserved);
+ UNUSED(why);
+
+ return TRUE;
+}
+
+/*
+ * --------------------------------------------------------------------
+ * time conversion and other helpers
+ * --------------------------------------------------------------------
+ */
+
+/* --------------------------------------------------------------------
+ * convert fixed point time stamp to struct timespec, with proper
+ * Epoch/Era unfolding around the current time.
+ */
+static struct timespec
+fp_stamp_to_tspec(
+ ntp_fp_t x,
+ time_t p
+ )
+{
+ struct timespec out;
+ u_int64 tmp;
+ u_int32 ntp;
+
+ ntp = x.I.u;
+ tmp = p;
+ tmp -= 0x80000000u; /* unshift of half range */
+ ntp -= (u_int32)PPS_JAN_1970; /* warp into UN*X domain */
+ ntp -= (u_int32)tmp; /* cycle difference */
+ tmp += (u_int64)ntp; /* get expanded time */
+ out.tv_sec = (time_t)tmp;
+ out.tv_nsec = ((long)(((u_int64)x.F.u * PPS_NANOSECOND + 0x80000000u) >> 32));
+ if (out.tv_nsec >= PPS_NANOSECOND) {
+ out.tv_nsec -= PPS_NANOSECOND;
+ out.tv_sec++;
+ }
+
+ return out;
+}
+
+/* --------------------------------------------------------------------
+ * convert a duration in struct timespec format to
+ * fixed point representation.
+ */
+static ntp_fp_t
+tspec_to_fp(
+ const struct timespec * ts
+ )
+{
+ ntp_fp_t out;
+ long tmp;
+
+ out.I.u = (u_int32)ts->tv_sec;
+ tmp = ts->tv_nsec;
+ if (tmp < 0)
+ do {
+ tmp += PPS_NANOSECOND;
+ out.I.u--;
+ } while (tmp < 0);
+ else if (tmp >= PPS_NANOSECOND)
+ do {
+ tmp -= PPS_NANOSECOND;
+ out.I.u++;
+ } while (tmp >= PPS_NANOSECOND);
+ out.F.u = (u_int32)((u_int64)tmp << 32) + (PPS_NANOSECOND / 2) / PPS_NANOSECOND;
+ return out;
+}
+
+/* --------------------------------------------------------------------
+ * count number of '1' bits in a u_long
+ */
+static size_t
+popcount(
+ u_long val
+ )
+{
+ size_t res;
+
+ for (res = 0; val; res++)
+ val &= (val - 1);
+ return res;
+}
+
+/*
+ * --------------------------------------------------------------------
+ * API function implementation
+ * --------------------------------------------------------------------
+ */
+
+/* --------------------------------------------------------------------
+ * prov_time_pps_create - create PPS handle given underlying device
+ */
+int WINAPI
+prov_time_pps_create(
+ HANDLE device, /* underlying device */
+ pps_handle_t * handle /* returned handle */
+ )
+{
+ loopback_unit * loopunit;
+ pps_unit_t * punit;
+
+ /*
+ * Allocate and initialize loopback unit structure.
+ */
+ loopunit = (loopback_unit*)calloc(1, sizeof(loopback_unit));
+ if (NULL == loopunit)
+ return ENOMEM;
+
+ /* Try to attach to NTPD internal data with the device handle.
+ * Free unit buffer on failure.
+ */
+ loopunit->hnd_dev = device;
+ loopunit->hnd_pps = ntp_pps_attach_device(device);
+ if (NULL == loopunit->hnd_pps) {
+ free(loopunit);
+ return ENXIO;
+ }
+
+ /* create the outer PPS handle structure. Undo work done so far
+ * if things go wrong.
+ */
+ *handle = (*p_create_pps_handle)(loopunit);
+ if (!*handle) {
+ ntp_pps_detach_device(loopunit->hnd_pps);
+ free(loopunit);
+ return ENOMEM;
+ }
+
+ /* All good so far. Store things to remember. */
+ punit = (pps_unit_t *)*handle;
+ punit->params.api_version = PPS_API_VERS_1;
+ punit->params.mode = PPS_CAPTUREBOTH | PPS_TSFMT_BOTH;
+ return 0;
+}
+
+
+/* --------------------------------------------------------------------
+ * prov_time_pps_destroy - release PPS handle
+ */
+int WINAPI
+prov_time_pps_destroy(
+ pps_unit_t * unit,
+ void * context
+ )
+{
+ loopback_unit * loopunit;
+
+ loopunit = (loopback_unit*)context;
+ if (unit->context == context)
+ unit->context = NULL;
+ if (NULL != loopunit)
+ ntp_pps_detach_device(loopunit->hnd_pps);
+ free(loopunit);
+ return 0;
+}
+
+
+/* --------------------------------------------------------------------
+ * prov_time_pps_setparams - set parameters for handle
+ */
+int WINAPI
+prov_time_pps_setparams(
+ pps_unit_t * unit,
+ void * context,
+ const pps_params_t * params
+ )
+{
+ loopback_unit * loopunit;
+ int mode;
+
+ loopunit = (loopback_unit*)context;
+ mode = params->mode;
+
+ /*
+ * There was no reasonable consensus in the API working group.
+ * I require `api_version' to be set!
+ */
+ if (params->api_version != PPS_API_VERS_1)
+ return EINVAL;
+
+ /*
+ * We support all edges and formats plus offsets, but not
+ * POLL or WAIT. And we are strict on the time stamp format:
+ * Only one is permitted if we set offsets!
+ */
+
+ /*
+ * Only one of the time formats may be selected.
+ */
+ if ((mode & PPS_OFFSETBOTH) != 0 &&
+ popcount(mode & PPS_TSFMT_BOTH) != 1 )
+ return EINVAL;
+
+ /* turn off read-only bits */
+ mode &= ~SERIALPPS_RO;
+
+ /*
+ * test remaining bits.
+ */
+ if (mode & ~(PPS_CAPTUREBOTH | PPS_OFFSETBOTH | PPS_TSFMT_BOTH))
+ return EOPNOTSUPP;
+
+ /*
+ * ok, ready to go.
+ *
+ * calculate offsets as ntp_fp_t's and store them in unit as ntp_fp_t. They will
+ * be always applied, since fetching the time stamps is not critical.
+ */
+ if (mode & PPS_OFFSETASSERT) {
+ if (mode & PPS_TSFMT_TSPEC)
+ loopunit->ofs_assert = tspec_to_fp(&params->assert_offset);
+ else
+ loopunit->ofs_assert = params->assert_offset_ntpfp;
+ }
+ if (mode & PPS_OFFSETCLEAR) {
+ if (mode & PPS_TSFMT_TSPEC)
+ loopunit->ofs_clear = tspec_to_fp(&params->clear_offset);
+ else
+ loopunit->ofs_clear = params->clear_offset_ntpfp;
+ }
+ /* save remaining bits */
+ mode |= unit->params.mode;
+ unit->params = *params;
+ unit->params.mode = mode;
+
+ return 0;
+}
+
+
+/* --------------------------------------------------------------------
+ * prov_time_pps_fetch - Fetch timestamps
+ */
+
+int WINAPI
+prov_time_pps_fetch(
+ pps_unit_t * unit,
+ void * context,
+ const int tsformat,
+ pps_info_t * pinfo,
+ const struct timespec * timeout
+ )
+{
+ loopback_unit * loopunit;
+ PPSData_t pps_stamps;
+ pps_info_t infobuf;
+ BOOL rc;
+ time_t tnow;
+
+ /*
+ * nb. PPS_CANWAIT is NOT set by the implementation, we can totally
+ * ignore the timeout variable.
+ */
+ UNUSED(timeout);
+ loopunit = (loopback_unit*)context;
+
+ /* read & check raw data from daemon */
+ memset(&infobuf, 0, sizeof(infobuf));
+ rc = ntp_pps_read(loopunit->hnd_pps, &pps_stamps, sizeof(pps_stamps));
+ if (!rc) {
+ switch (GetLastError())
+ {
+ case ERROR_INVALID_HANDLE:
+ return EINVAL;
+ case ERROR_INVALID_PARAMETER:
+ return EOPNOTSUPP;
+ case ERROR_INVALID_DATA:
+ return ENXIO;
+ default:
+ return EINVAL;
+ }
+ }
+
+ /* add offsets on raw data */
+ NTPFP_L_ADDS(&pps_stamps.ts_assert, &loopunit->ofs_assert);
+ NTPFP_L_ADDS(&pps_stamps.ts_clear , &loopunit->ofs_clear);
+
+ /* store sequence numbers */
+ infobuf.assert_sequence = pps_stamps.cc_assert;
+ infobuf.clear_sequence = pps_stamps.cc_clear;
+
+ /*
+ * Translate or copy to specified format
+ */
+ switch (tsformat) {
+ case PPS_TSFMT_NTPFP: /* NTP format requires no translation */
+ infobuf.assert_timestamp_ntpfp = pps_stamps.ts_assert;
+ infobuf.clear_timestamp_ntpfp = pps_stamps.ts_clear;
+ break;
+
+ case PPS_TSFMT_TSPEC: /* timespec format requires conversion to nsecs form */
+ time(&tnow);
+ infobuf.assert_timestamp = fp_stamp_to_tspec(pps_stamps.ts_assert, tnow);
+ infobuf.clear_timestamp = fp_stamp_to_tspec(pps_stamps.ts_clear, tnow);
+ break;
+
+ default:
+ return EINVAL;
+ }
+
+ infobuf.current_mode = unit->params.mode;
+ *pinfo = infobuf;
+
+ return 0;
+}
+
+
+/* --------------------------------------------------------------------
+ * prov_time_pps_kcbind - specify kernel consumer
+ *
+ * Not supported so far by Windows.
+ */
+int WINAPI
+prov_time_pps_kcbind(
+ pps_unit_t * punit,
+ void * context,
+ const int kernel_consumer,
+ const int edge,
+ const int tsformat
+ )
+{
+ UNUSED(punit);
+ UNUSED(context);
+ UNUSED(kernel_consumer);
+ UNUSED(edge);
+ UNUSED(tsformat);
+
+ return EOPNOTSUPP;
+}
+
+
+/* --------------------------------------------------------------------
+ * prov_init - returns capabilities and provider name
+ */
+int WINAPI
+ppsapi_prov_init(
+ int ppsapi_timepps_prov_ver,
+ pcreate_pps_handle create_pps_handle,
+ ppps_ntp_timestamp_from_counter ntp_timestamp_from_counter,
+ char * short_name_buf,
+ size_t short_name_size,
+ char * full_name_buf,
+ size_t full_name_size
+ )
+{
+ UNUSED(ntp_timestamp_from_counter);
+
+ if (ppsapi_timepps_prov_ver < PPSAPI_TIMEPPS_PROV_VER)
+ return 0;
+
+ p_create_pps_handle = create_pps_handle;
+
+ strncpy(short_name_buf, "loopback", short_name_size);
+ short_name_buf[short_name_size - 1] ='\0'; /* ensure ASCIIZ */
+ strncpy(full_name_buf,
+ "loopback user mode DCD change detection",
+ full_name_size);
+ full_name_buf[full_name_size - 1] ='\0'; /* ensure ASCIIZ */
+
+ return SERIALPPS_CAPS;
+}
diff --git a/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def b/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def
new file mode 100644
index 000000000000..14573a25c3d7
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.def
@@ -0,0 +1,9 @@
+LIBRARY "loopback-ppsapi-provider.dll"
+
+EXPORTS
+ ppsapi_prov_init
+ prov_time_pps_create
+ prov_time_pps_destroy
+ prov_time_pps_fetch
+ prov_time_pps_kcbind
+ prov_time_pps_setparams \ No newline at end of file
diff --git a/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.h b/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.h
new file mode 100644
index 000000000000..5541e333ed3b
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/src/loopback-ppsapi.h
@@ -0,0 +1,49 @@
+//
+// serialpps-ppsapi-provider.h
+//
+// For this tiny project the single header serves as a precompiled header
+// as well, meaning all the bulky headers are included before or within it.
+// Within, in this case.
+//
+
+#define _CRT_SECURE_NO_WARNINGS
+#include <stdio.h>
+#include <windows.h>
+typedef __int32 int32;
+typedef unsigned __int32 u_int32;
+typedef __int64 int64;
+typedef unsigned __int64 u_int64;
+#include "timepps.h"
+
+#ifndef UNUSED
+#define UNUSED(item) ((void)(item))
+#endif
+
+/* PPS data structure as captured by the serial line I/O system. This
+ * must match the local definition in 'ntp_iocompletionport.c' or
+ * 'Bad Things (tm)' are bound to happen.
+ */
+struct PpsData {
+ u_long cc_assert;
+ u_long cc_clear;
+ ntp_fp_t ts_assert;
+ ntp_fp_t ts_clear;
+};
+typedef struct PpsData PPSData_t;
+
+/* prototypes imported from the NTPD executable */
+__declspec(dllimport) HANDLE WINAPI ntp_pps_attach_device(HANDLE hndIo);
+__declspec(dllimport) void WINAPI ntp_pps_detach_device(HANDLE ppsHandle);
+__declspec(dllimport) BOOL WINAPI ntp_pps_read(HANDLE ppsHandle, void*, size_t);
+
+/* prototypes exported to the NTPD executable */
+__declspec(dllexport) int WINAPI prov_time_pps_create(HANDLE, pps_handle_t*);
+__declspec(dllexport) int WINAPI prov_time_pps_destroy(pps_unit_t*, void*);
+__declspec(dllexport) int WINAPI prov_time_pps_setparams(pps_unit_t*, void*,
+ const pps_params_t*);
+__declspec(dllexport) int WINAPI prov_time_pps_fetch(pps_unit_t*, void*,
+ const int, pps_info_t*, const struct timespec*);
+__declspec(dllexport) int WINAPI prov_time_pps_kcbind(pps_unit_t*, void*, const int, const int, const int);
+__declspec(dllexport) int WINAPI ppsapi_prov_init(int, pcreate_pps_handle,
+ ppps_ntp_timestamp_from_counter, char*, size_t,
+ char*, size_t);
diff --git a/ports/winnt/ppsapi/loopback/src/sys/time.h b/ports/winnt/ppsapi/loopback/src/sys/time.h
new file mode 100644
index 000000000000..079e5b64431f
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/src/sys/time.h
@@ -0,0 +1,18 @@
+/*
+ * This sys/time.h is part of ppsapi-prov skeleton sample source code
+ * for a Windows PPSAPI provider DLL. It was adapted from
+ * ports/winnt/include/sys/time.h in ntpd.
+ */
+
+#ifndef SYS_TIME_H
+#define SYS_TIME_H
+
+#include <windows.h>
+#include <time.h>
+
+typedef struct timespec {
+ time_t tv_sec;
+ long tv_nsec;
+} timespec_t;
+
+#endif /* SYS_TIME_H */
diff --git a/ports/winnt/ppsapi/loopback/src/timepps.h b/ports/winnt/ppsapi/loopback/src/timepps.h
new file mode 100644
index 000000000000..3a7e80662418
--- /dev/null
+++ b/ports/winnt/ppsapi/loopback/src/timepps.h
@@ -0,0 +1,805 @@
+/***********************************************************************
+ * *
+ * Copyright (c) David L. Mills 1999-2009 *
+ * *
+ * Permission to use, copy, modify, and distribute this software and *
+ * its documentation for any purpose and 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 *
+ * 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 makes no *
+ * representations about the suitability this software for any *
+ * purpose. It is provided "as is" without express or implied *
+ * warranty. *
+ * *
+ ***********************************************************************
+ * *
+ * This header file complies with "Pulse-Per-Second API for UNIX-like *
+ * Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
+ * and Marc Brett, from whom much of this code was shamelessly stolen. *
+ * *
+ * This modified timepps.h can be used to provide a PPSAPI interface *
+ * to a machine running Windows with one or more backend provider DLLs *
+ * implementing the provider interfaces defined herein. *
+ * *
+ * This Windows version was derived by Dave Hart *
+ * <davehart@davehart.com> from Mills' timepps-Solaris.h *
+ * *
+ ***********************************************************************
+ * *
+ * Some of this include file *
+ * Copyright (c) 1999 by Ulrich Windl, *
+ * based on code by Reg Clemens <reg@dwf.com> *
+ * based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
+ * *
+ ***********************************************************************
+ * *
+ * "THE BEER-WARE LICENSE" (Revision 42): *
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this *
+ * notice you can do whatever you want with this stuff. If we meet some*
+ * day, and you think this stuff is worth it, you can buy me a beer *
+ * in return. Poul-Henning Kamp *
+ * *
+ **********************************************************************/
+
+#ifndef TIMEPPS_H
+#define TIMEPPS_H
+
+#include "sys/time.h" /* in ntp ref source declares struct timespec */
+
+/*
+ * The following definitions are architecture independent
+ */
+
+#define PPS_API_VERS_1 1 /* API version number */
+#define PPS_JAN_1970 2208988800UL /* 1970 - 1900 in seconds */
+#define PPS_NANOSECOND 1000000000L /* one nanosecond in decimal */
+#define PPS_FRAC 4294967296. /* 2^32 as a double */
+#define PPS_HECTONANOSECONDS 10000000 /* 100ns units in a second */
+#define PPS_FILETIME_1970 0x019db1ded53e8000 /* unix epoch to Windows */
+
+#define PPS_NORMALIZE(x) /* normalize timespec */ \
+ do { \
+ while ((x).tv_nsec >= PPS_NANOSECOND) { \
+ (x).tv_nsec -= PPS_NANOSECOND; \
+ (x).tv_sec++; \
+ } \
+ while ((x).tv_nsec < 0) { \
+ (x).tv_nsec += PPS_NANOSECOND; \
+ (x).tv_sec--; \
+ } \
+ } while (0)
+
+#define PPS_TSPECTONTP(x) /* convert timespec to ntp_fp */ \
+ do { \
+ double d_frac; \
+ \
+ d_frac = ((struct timespec)&(x))->tv_nsec \
+ * PPS_FRAC / PPS_NANOSECOND; \
+ (x).integral = ((struct timespec)&(x))->tv_sec \
+ + PPS_JAN_1970; \
+ (x).fractional = (unsigned int)d_frac; \
+ if (d_frac >= PPS_FRAC) \
+ (x).integral++; \
+ } while (0)
+
+#define PPS_NTPTOTSPEC(x) /* convert ntp_fp to timespec */ \
+ do { \
+ double d_frac; \
+ \
+ /* careful, doing in place and tv_sec may be 64bit */ \
+ d_frac = (double)((ntp_fp_t *)&(x))->F.u \
+ * PPS_NANOSECOND / PPS_FRAC; \
+ (x).tv_sec = ((ntp_fp_t *)&(x))->I.u \
+ - (time_t)PPS_JAN_1970; \
+ (x).tv_nsec = (long)d_frac; \
+ } while (0)
+
+
+/*
+ * Device/implementation parameters (mode)
+ */
+
+#define PPS_CAPTUREASSERT 0x01 /* capture assert events */
+#define PPS_CAPTURECLEAR 0x02 /* capture clear events */
+#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
+
+#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
+#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
+#define PPS_OFFSETBOTH 0x30 /* apply compensation for both */
+
+#define PPS_CANWAIT 0x100 /* Can we wait for an event? */
+#define PPS_CANPOLL 0x200 /* "This bit is reserved for */
+
+/*
+ * Kernel actions (mode)
+ */
+
+#define PPS_ECHOASSERT 0x40 /* feed back assert event to output */
+#define PPS_ECHOCLEAR 0x80 /* feed back clear event to output */
+
+/*
+ * Timestamp formats (tsformat)
+ */
+
+#define PPS_TSFMT_TSPEC 0x1000 /* select timespec format */
+#define PPS_TSFMT_NTPFP 0x2000 /* select NTP format */
+#define PPS_TSFMT_BOTH (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)
+
+/*
+ * Kernel discipline actions (not used in Windows yet)
+ */
+
+#define PPS_KC_HARDPPS 0 /* enable kernel consumer */
+#define PPS_KC_HARDPPS_PLL 1 /* phase-lock mode */
+#define PPS_KC_HARDPPS_FLL 2 /* frequency-lock mode */
+
+/*
+ * Type definitions
+ */
+
+typedef unsigned long pps_seq_t; /* sequence number */
+
+#pragma warning(push)
+//#pragma warning(disable: 201) /* nonstd extension nameless union */
+
+typedef struct ntp_fp {
+ union {
+ int32 s;
+ u_int32 u;
+ } I;
+ union {
+ int32 s;
+ u_int32 u;
+ } F;
+} ntp_fp_t; /* NTP-compatible time stamp */
+
+#pragma warning(pop)
+
+typedef union pps_timeu { /* timestamp format */
+ struct timespec tspec;
+ ntp_fp_t ntpfp;
+ unsigned long longpad[3];
+} pps_timeu_t; /* generic data type to represent time stamps */
+
+/* addition of NTP fixed-point format */
+
+#define NTPFP_M_ADD(r_i, r_f, a_i, a_f) /* r += a */ \
+ do { \
+ r_f = (u_int32)(r_f) + (u_int32)(a_f); \
+ r_i = (u_int32)(r_i) + (u_int32)(a_i) + \
+ ((u_int32)(r_f) < (u_int32)(a_f)); \
+ } while (0)
+
+#define NTPFP_L_ADDS(r, a) NTPFP_M_ADD((r)->I.u, (r)->F.u, (a)->I.u, (a)->F.u)
+
+
+/*
+ * Timestamp information structure
+ */
+
+typedef struct pps_info {
+ pps_seq_t assert_sequence; /* seq. num. of assert event */
+ pps_seq_t clear_sequence; /* seq. num. of clear event */
+ pps_timeu_t assert_tu; /* time of assert event */
+ pps_timeu_t clear_tu; /* time of clear event */
+ int current_mode; /* current mode bits */
+} pps_info_t;
+
+#define assert_timestamp assert_tu.tspec
+#define clear_timestamp clear_tu.tspec
+
+#define assert_timestamp_ntpfp assert_tu.ntpfp
+#define clear_timestamp_ntpfp clear_tu.ntpfp
+
+/*
+ * Parameter structure
+ */
+
+typedef struct pps_params {
+ int api_version; /* API version # */
+ int mode; /* mode bits */
+ pps_timeu_t assert_off_tu; /* offset compensation for assert */
+ pps_timeu_t clear_off_tu; /* offset compensation for clear */
+} pps_params_t;
+
+#define assert_offset assert_off_tu.tspec
+#define clear_offset clear_off_tu.tspec
+
+#define assert_offset_ntpfp assert_off_tu.ntpfp
+#define clear_offset_ntpfp clear_off_tu.ntpfp
+
+/*
+ *------ Here begins the implementation-specific part! ------
+ */
+
+#include <windows.h>
+#include <errno.h>
+#include <stddef.h> /* offsetof() */
+#include <io.h> /* _get_osfhandle() */
+
+#ifndef EOPNOTSUPP
+#define EOPNOTSUPP 45
+#endif
+
+typedef UINT_PTR pps_handle_t; /* pps handlebars */
+
+#ifndef inline
+#define inline __inline
+#endif
+
+/*
+ * ntpd on Windows is typically distributed as a binary as few users
+ * have the tools needed to build from source. Rather than build
+ * a single timepps.h for Windows which knows how to talk to all
+ * PPS implementations frozen in time as of compiling, this timepps.h
+ * allows one or more backend providers to be used by naming a DLL
+ * which exports the provider interfaces defined here.
+ */
+typedef enum ppsapi_magic_tag {
+ PPSAPI_MAGIC_UNIT = 0x70707355, /* ppsU */
+} ppsapi_magic;
+
+typedef struct {
+ struct pps_provider_tag *provider;
+ void * context;/* provider's unit pointer */
+ ppsapi_magic magic; /* to detect invalid handles */
+ pps_params_t params; /* PPS parameters set by user */
+} pps_unit_t;
+
+typedef void (*ppps_ntp_timestamp_from_counter)(
+ ntp_fp_t *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp
+ );
+
+typedef pps_handle_t (*pcreate_pps_handle)(
+ void * prov_context
+ );
+
+/*
+ * ppsapi_prov_init() - exported by backend DLLs
+ *
+ * Return value is pps capabilities available to PPSAPI consumers
+ * via time_pps_getcaps().
+ */
+#define PPSAPI_TIMEPPS_PROV_VER 2
+
+typedef int (WINAPI *pppsapi_prov_init)(
+ int ppsapi_timepps_prov_ver,
+ pcreate_pps_handle create_pps_handle,
+ ppps_ntp_timestamp_from_counter ntp_timestamp_from_counter,
+ char * short_name_buf,
+ size_t short_name_size,
+ char * full_name_buf,
+ size_t full_name_size
+ );
+
+typedef int (WINAPI *provtime_pps_create)(
+ HANDLE winhandle, /* user device handle */
+ pps_handle_t *phandle /* returned handle */
+ );
+
+typedef int (WINAPI *provtime_pps_destroy)(
+ pps_unit_t * unit,
+ void * context
+ );
+
+typedef int (WINAPI *provtime_pps_setparams)(
+ pps_unit_t * unit,
+ void * context,
+ const pps_params_t * params
+ );
+
+typedef int (WINAPI *provtime_pps_fetch)(
+ pps_unit_t * unit,
+ void * context,
+ const int tsformat,
+ pps_info_t * pinfo,
+ const struct timespec * timeout
+ );
+
+typedef int (WINAPI *provtime_pps_kcbind)(
+ pps_unit_t * unit,
+ void * context,
+ const int kernel_consumer,
+ const int edge,
+ const int tsformat
+ );
+
+typedef struct pps_provider_tag {
+ struct pps_provider_tag *next;
+ int caps;
+ char * short_name;
+ char * full_name;
+ provtime_pps_create ptime_pps_create;
+ provtime_pps_destroy ptime_pps_destroy;
+ provtime_pps_setparams ptime_pps_setparams;
+ provtime_pps_fetch ptime_pps_fetch;
+ provtime_pps_kcbind ptime_pps_kcbind;
+} ppsapi_provider;
+
+static ppsapi_provider * g_provider_list;
+static ppsapi_provider * g_curr_provider;
+
+
+static inline pps_handle_t
+internal_create_pps_handle(
+ void * prov_context
+ )
+{
+ pps_unit_t * punit;
+
+ if (NULL == g_curr_provider) {
+ fprintf(stderr, "create_pps_handle: provider backend called me outside time_pps_create\n");
+ punit = NULL;
+ } else
+ punit = malloc(sizeof(*punit));
+ if (punit != NULL) {
+ punit->provider = g_curr_provider;
+ punit->context = prov_context;
+ punit->magic = PPSAPI_MAGIC_UNIT;
+ memset(&punit->params, 0, sizeof(punit->params));
+ }
+ return (pps_handle_t)punit;
+}
+
+static inline pps_unit_t *
+unit_from_ppsapi_handle(
+ pps_handle_t handle
+ )
+{
+ pps_unit_t *punit;
+
+ punit = (pps_unit_t *)handle;
+ if (PPSAPI_MAGIC_UNIT != punit->magic)
+ punit = NULL;
+ return punit;
+}
+
+/*
+ * ntpd on Windows only looks to errno after finding
+ * GetLastError returns NO_ERROR. To accomodate its
+ * use of msyslog in portable code such as refclock_atom.c,
+ * this implementation always clears the Windows
+ * error code using SetLastError(NO_ERROR) when
+ * returning an errno. This is also a good idea
+ * for any non-ntpd clients as they should rely only
+ * the errno for PPSAPI functions.
+ */
+#define RETURN_PPS_ERRNO(e) \
+do { \
+ SetLastError(NO_ERROR); \
+ errno = (e); \
+ return -1; \
+} while (0)
+
+
+#ifdef OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER
+extern void pps_ntp_timestamp_from_counter(ntp_fp_t *, ULONGLONG, ULONGLONG);
+#else
+/*
+ * helper routine for serialpps.sys ioctl which returns
+ * performance counter "timestamp" as well as a system
+ * FILETIME timestamp. Converts one of the inputs to
+ * NTP fixed-point format.
+ *
+ * You will probably want to supply your own and #define
+ * OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER, as this stub
+ * converts only the low-resolution system timestamp.
+ *
+ * When implementing a provider, use the pointer to this
+ * conversion function supplied to your prov_init(), as
+ * the copy in your DLL will likely be the stub below,
+ * where you want the one provided by the PPSAPI client
+ * such as ntpd.
+ */
+static inline void
+pps_ntp_timestamp_from_counter(
+ ntp_fp_t *result,
+ ULONGLONG Timestamp,
+ ULONGLONG Counterstamp)
+{
+ ULONGLONG BiasedTimestamp;
+
+ /* convert from 100ns units to NTP fixed point format */
+
+ BiasedTimestamp = Timestamp - PPS_FILETIME_1970;
+ result->I.u = PPS_JAN_1970 +
+ (unsigned)(BiasedTimestamp / PPS_HECTONANOSECONDS);
+ result->F.u =
+ (unsigned) ((BiasedTimestamp % PPS_HECTONANOSECONDS) *
+ (PPS_FRAC / PPS_HECTONANOSECONDS));
+}
+#endif
+
+
+static inline int
+load_pps_provider(
+ char * dllpath
+ )
+{
+ char short_name[16];
+ char full_name[64];
+ ppsapi_provider * prov;
+ HMODULE hmod;
+ pppsapi_prov_init pprov_init;
+
+ prov = malloc(sizeof(*prov));
+ if (NULL == prov)
+ return ENOMEM;
+
+ hmod = LoadLibrary(dllpath);
+ if (NULL == hmod) {
+ fprintf(stderr, "load_pps_provider: LoadLibrary(%s) error %u\n", dllpath, GetLastError());
+ free(prov);
+ return ENOENT;
+ }
+
+ pprov_init = (pppsapi_prov_init)GetProcAddress(hmod, "ppsapi_prov_init");
+ if (NULL == pprov_init) {
+ fprintf(stderr, "load_pps_provider: entrypoint ppsapi_prov_init not found in %s\n", dllpath);
+ free(prov);
+ FreeLibrary(hmod);
+ return EFAULT;
+ }
+
+ prov->caps = (*pprov_init)(PPSAPI_TIMEPPS_PROV_VER,
+ &internal_create_pps_handle,
+ &pps_ntp_timestamp_from_counter,
+ short_name, sizeof(short_name),
+ full_name, sizeof(full_name));
+
+ if (!prov->caps) {
+ free(prov);
+ FreeLibrary(hmod);
+ return EACCES;
+ }
+
+ prov->short_name = _strdup(short_name);
+ prov->full_name = _strdup(full_name);
+
+ if (NULL == prov->short_name || !prov->short_name[0]
+ || NULL == prov->full_name || !prov->full_name[0]) {
+
+ if (prov->short_name)
+ free(prov->short_name);
+ if (prov->full_name)
+ free(prov->full_name);
+ free(prov);
+ FreeLibrary(hmod);
+ return EINVAL;
+ }
+
+ prov->ptime_pps_create = (provtime_pps_create)
+ GetProcAddress(hmod, "prov_time_pps_create");
+ prov->ptime_pps_destroy = (provtime_pps_destroy)
+ GetProcAddress(hmod, "prov_time_pps_destroy");
+ prov->ptime_pps_setparams = (provtime_pps_setparams)
+ GetProcAddress(hmod, "prov_time_pps_setparams");
+ prov->ptime_pps_fetch = (provtime_pps_fetch)
+ GetProcAddress(hmod, "prov_time_pps_fetch");
+ prov->ptime_pps_kcbind = (provtime_pps_kcbind)
+ GetProcAddress(hmod, "prov_time_pps_kcbind");
+
+ if (NULL == prov->ptime_pps_create
+ || NULL == prov->ptime_pps_destroy
+ || NULL == prov->ptime_pps_setparams
+ || NULL == prov->ptime_pps_fetch
+ || NULL == prov->ptime_pps_kcbind) {
+
+ fprintf(stderr, "PPSAPI provider %s missing entrypoint\n",
+ prov->short_name);
+ free(prov->short_name);
+ free(prov->full_name);
+ free(prov);
+ FreeLibrary(hmod);
+ return EINVAL;
+ }
+
+ fprintf(stderr, "loaded PPSAPI provider %s caps 0x%x provider %p\n",
+ prov->full_name, prov->caps, prov);
+
+ prov->next = g_provider_list;
+ g_provider_list = prov;
+
+ return 0;
+}
+
+
+/*
+ * time_pps_create - create PPS handle from file descriptor
+ *
+ * This is the initial entrypoint of PPSAPI from the client. Note
+ * to maintain source compatibility with Unix, the input file
+ * descriptor really is a descriptor from the C runtime low-numbered
+ * descriptor namespace, though it may have been converted from a
+ * native Windows HANDLE using _open_osfhandle().
+ */
+static inline int
+time_pps_create(
+ int filedes,/* device file descriptor */
+ pps_handle_t * phandle /* returned handle */
+ )
+{
+ HANDLE winhandle;
+ char * dlls;
+ char * dll;
+ char * pch;
+ ppsapi_provider * prov;
+ pps_handle_t ppshandle;
+ int err;
+
+ if (NULL == phandle)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ winhandle = (HANDLE)_get_osfhandle(filedes);
+ fprintf(stderr, "time_pps_create(%d) got winhandle %p\n", filedes, winhandle);
+ if (INVALID_HANDLE_VALUE == winhandle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ /*
+ * For initial testing the list of PPSAPI backend
+ * providers is provided by the environment variable
+ * PPSAPI_DLLS, separated by semicolons such as
+ * PPSAPI_DLLS=c:\ntp\serial_ppsapi.dll;..\parport_ppsapi.dll
+ * There are a million better ways, such as a well-known
+ * registry key under which a value is created for each
+ * provider DLL installed, or even a platform-specific
+ * ntp.conf directive or command-line switch.
+ */
+ dlls = getenv("PPSAPI_DLLS");
+ if (dlls != NULL && NULL == g_provider_list) {
+ dlls = dll = _strdup(dlls);
+ fprintf(stderr, "getenv(PPSAPI_DLLS) gives %s\n", dlls);
+ } else
+ dlls = dll = NULL;
+
+ while (dll != NULL && dll[0]) {
+ pch = strchr(dll, ';');
+ if (pch != NULL)
+ *pch = 0;
+ err = load_pps_provider(dll);
+ if (err) {
+ fprintf(stderr, "load_pps_provider(%s) got errno %d\n", dll, err);
+ RETURN_PPS_ERRNO(err);
+ }
+ dll = (NULL == pch)
+ ? NULL
+ : pch + 1;
+ }
+
+ if (NULL != dlls)
+ free(dlls);
+ dlls = dll = NULL;
+
+ /*
+ * Hand off to each provider in turn until one returns a PPS
+ * handle or they've all declined.
+ */
+ for (prov = g_provider_list; prov != NULL; prov = prov->next) {
+ ppshandle = 0;
+ g_curr_provider = prov;
+ err = (*prov->ptime_pps_create)(winhandle, &ppshandle);
+ g_curr_provider = NULL;
+ fprintf(stderr, "%s prov_time_pps_create(%p) returned %d\n",
+ prov->short_name, winhandle, err);
+ if (!err && ppshandle) {
+ *phandle = ppshandle;
+ return 0;
+ }
+ }
+
+ fprintf(stderr, "PPSAPI provider list %p\n", g_provider_list);
+
+ RETURN_PPS_ERRNO(ENOEXEC);
+}
+
+
+/*
+ * release PPS handle
+ */
+
+static inline int
+time_pps_destroy(
+ pps_handle_t handle
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ err = (*punit->provider->ptime_pps_destroy)(punit, punit->context);
+
+ free(punit);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+/*
+ * set parameters for handle
+ */
+
+static inline int
+time_pps_setparams(
+ pps_handle_t handle,
+ const pps_params_t *params
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ /*
+ * Check for valid arguments and set parameters.
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == params)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ err = (*punit->provider->ptime_pps_setparams)(punit, punit->context, params);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+/*
+ * get parameters for handle
+ */
+
+static inline int
+time_pps_getparams(
+ pps_handle_t handle,
+ pps_params_t *params_buf
+ )
+{
+ pps_unit_t * punit;
+
+ /*
+ * Check for valid arguments and get parameters.
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == params_buf)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ *params_buf = punit->params;
+ return 0;
+}
+
+
+/*
+ * time_pps_getcap - get capabilities for handle
+ */
+static inline int
+time_pps_getcap(
+ pps_handle_t handle,
+ int *pmode
+ )
+{
+ pps_unit_t * punit;
+
+ /*
+ * Check for valid arguments and get capabilities.
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == pmode)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ *pmode = punit->provider->caps;
+ return 0;
+}
+
+/*
+ * Fetch timestamps
+ */
+
+static inline int
+time_pps_fetch(
+ pps_handle_t handle,
+ const int tsformat,
+ pps_info_t * pinfo,
+ const struct timespec * ptimeout
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ /*
+ * Check for valid arguments and fetch timestamps
+ */
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ if (NULL == pinfo)
+ RETURN_PPS_ERRNO(EFAULT);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ err = (*punit->provider->ptime_pps_fetch)(punit,
+ punit->context,
+ tsformat,
+ pinfo,
+ ptimeout);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+/*
+ * time_pps_kcbind - specify kernel consumer
+ *
+ * Not supported so far by Windows.
+ */
+
+static inline int
+time_pps_kcbind(
+ pps_handle_t handle,
+ const int kernel_consumer,
+ const int edge, const int tsformat
+ )
+{
+ pps_unit_t * punit;
+ int err;
+
+ if (!handle)
+ RETURN_PPS_ERRNO(EBADF);
+
+ punit = unit_from_ppsapi_handle(handle);
+
+ if (NULL == punit)
+ RETURN_PPS_ERRNO(EBADF);
+
+ err = (*punit->provider->ptime_pps_kcbind)(
+ punit,
+ punit->context,
+ kernel_consumer,
+ edge,
+ tsformat);
+
+ if (err)
+ RETURN_PPS_ERRNO(err);
+ else
+ return 0;
+}
+
+
+#endif /* TIMEPPS_H */
diff --git a/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.c b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.c
new file mode 100644
index 000000000000..fe15d2972587
--- /dev/null
+++ b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.c
@@ -0,0 +1,382 @@
+/*
+ * skeleton-ppsapi-provider.c - structure but no useful function
+ */
+
+/***********************************************************************
+ * *
+ * Copyright (c) David L. Mills 1999-2009 *
+ * *
+ * Permission to use, copy, modify, and distribute this software and *
+ * its documentation for any purpose and 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 *
+ * 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 makes no *
+ * representations about the suitability this software for any *
+ * purpose. It is provided "as is" without express or implied *
+ * warranty. *
+ * *
+ ***********************************************************************
+ * *
+ * This header file complies with "Pulse-Per-Second API for UNIX-like *
+ * Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
+ * and Marc Brett, from whom much of this code was shamelessly stolen. *
+ * *
+ * This skeleton-ppsapi-provider.c implements the PPSAPI provider DLL *
+ * interface but has no actual timestamp-fetching code. It is *
+ * derived from serialpps-ppsapi-provider.c which was derived from *
+ * David L. Mills' timepps.h for Solaris. *
+ * *
+ ***********************************************************************
+ * *
+ * Some of this include file *
+ * Copyright (c) 1999 by Ulrich Windl, *
+ * based on code by Reg Clemens <reg@dwf.com> *
+ * based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
+ * *
+ ***********************************************************************
+ * *
+ * "THE BEER-WARE LICENSE" (Revision 42): *
+ * <phk@FreeBSD.org> wrote this file. As long as you retain this *
+ * notice you can do whatever you want with this stuff. If we meet some*
+ * day, and you think this stuff is worth it, you can buy me a beer *
+ * in return. Poul-Henning Kamp *
+ * *
+ **********************************************************************/
+
+
+#include "skeleton-ppsapi-provider.h"
+
+pcreate_pps_handle p_create_pps_handle;
+ppps_ntp_timestamp_from_counter p_ntp_timestamp_from_counter;
+
+#define SKELPPS_CAPS (PPS_CAPTUREASSERT | PPS_OFFSETASSERT \
+ | PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)
+#define SKELPPS_RO (PPS_CANWAIT | PPS_CANPOLL)
+
+
+/*
+ * The ntp_timestamp_from_counter callback into timepps.h routines in
+ * the host is saved in each unit separately, so that binaries that
+ * inline timepps.h into multiple source files (such as refclock_atom.c
+ * and a number of other ntpd refclocks including refclock_nmea.c) will
+ * get called back in the correct instance for each unit. This assumes
+ * that ppsapi_prov_init for subsequent instances happens only after the
+ * first instance has completed all time_pps_create() calls it will
+ * invoke, which is a safe assumption at least for ntpd.
+ */
+typedef struct skel_unit_tag {
+ HANDLE device;
+ ppps_ntp_timestamp_from_counter p_ntp_timestamp_from_counter;
+} skel_unit;
+
+
+/*
+ * DllMain - DLL entrypoint, no-op.
+ */
+BOOL APIENTRY DllMain(
+ HMODULE hModule,
+ DWORD ul_reason_for_call,
+ LPVOID lpReserved
+ )
+{
+ UNUSED(hModule);
+ UNUSED(ul_reason_for_call);
+ UNUSED(lpReserved);
+
+ return TRUE;
+}
+
+
+/*
+ * prov_time_pps_create - create PPS handle given underlying device
+ */
+int WINAPI
+prov_time_pps_create(
+ HANDLE device, /* underlying device */
+ pps_handle_t * handle /* returned handle */
+ )
+{
+ skel_unit * pskelunit;
+ pps_unit_t * punit;
+
+ /*
+ * Allocate and initialize unit structure.
+ */
+
+ pskelunit = malloc(sizeof(*pskelunit));
+ if (NULL == pskelunit)
+ return ENOMEM;
+
+ pskelunit->device = device;
+ pskelunit->p_ntp_timestamp_from_counter = p_ntp_timestamp_from_counter;
+
+ *handle = (*p_create_pps_handle)(pskelunit);
+ if (*handle) {
+ punit = (pps_unit_t *)*handle;
+ punit->params.api_version = PPS_API_VERS_1;
+ punit->params.mode = PPS_CAPTUREASSERT | PPS_TSFMT_TSPEC;
+ }
+
+ return (*handle)
+ ? 0
+ : ENOMEM;
+}
+
+
+/*
+ * prov_time_pps_destroy - release PPS handle
+ */
+int WINAPI
+prov_time_pps_destroy(
+ pps_unit_t * unit,
+ void * context
+ )
+{
+ skel_unit *pskelunit;
+
+ UNUSED(unit);
+
+ pskelunit = context;
+ free(pskelunit);
+
+ return 0;
+}
+
+
+/*
+ * prov_time_pps_setparams - set parameters for handle
+ */
+int WINAPI
+prov_time_pps_setparams(
+ pps_unit_t * unit,
+ void * context,
+ const pps_params_t * params
+ )
+{
+ skel_unit *pskelunit;
+ int mode, mode_in;
+
+ pskelunit = context;
+
+ /*
+ * There was no reasonable consensus in the API working group.
+ * I require `api_version' to be set!
+ */
+
+ if (params->api_version != PPS_API_VERS_1)
+ return EINVAL;
+
+ /*
+ * The only settable modes are PPS_CAPTUREASSERT,
+ * PPS_OFFSETASSERT, and the timestamp formats.
+ */
+
+ mode_in = params->mode;
+
+ /*
+ * Only one of the time formats may be selected
+ * if a nonzero assert offset is supplied.
+ */
+ if ((mode_in & (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP))
+ == (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)) {
+
+ if (params->assert_offset.tv_sec ||
+ params->assert_offset.tv_nsec)
+ return EINVAL;
+
+ /*
+ * If no offset was specified but both time
+ * format flags are used consider it harmless
+ * but turn off PPS_TSFMT_NTPFP so getparams
+ * will not show both formats lit.
+ */
+ mode_in &= ~PPS_TSFMT_NTPFP;
+ }
+
+ /* turn off read-only bits */
+
+ mode_in &= ~SKELPPS_RO;
+
+ /*
+ * test remaining bits, should only have captureassert,
+ * offsetassert, and/or timestamp format bits.
+ */
+
+ if (mode_in & ~(PPS_CAPTUREASSERT | PPS_OFFSETASSERT |
+ PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP))
+ return EOPNOTSUPP;
+
+ /*
+ * ok, ready to go.
+ */
+
+ mode = unit->params.mode;
+ unit->params = *params;
+ unit->params.mode = mode | mode_in;
+
+ return 0;
+}
+
+
+/*
+ * prov_time_pps_fetch - Fetch timestamps
+ */
+
+int WINAPI
+prov_time_pps_fetch(
+ pps_unit_t * unit,
+ void * context,
+ const int tsformat,
+ pps_info_t * pinfo,
+ const struct timespec * timeout
+ )
+{
+ ULONGLONG WindowsTimestamp;
+ ULONGLONG Counterstamp;
+ skel_unit *pskelunit;
+ pps_info_t infobuf;
+
+ /*
+ * nb. PPS_CANWAIT is NOT set by the implementation, we can totally
+ * ignore the timeout variable.
+ */
+ UNUSED(timeout);
+ pskelunit = context;
+
+ memset(&infobuf, 0, sizeof(infobuf));
+
+ /*
+ * if not captureassert, nothing to return.
+ */
+
+ if (!(unit->params.mode & PPS_CAPTUREASSERT)) {
+ *pinfo = infobuf;
+ return 0;
+ }
+
+ /*
+ * ADD CODE to retrieve timestamp here.
+ */
+ WindowsTimestamp = Counterstamp = 0;
+ /*
+ * ADD CODE to retrieve timestamp here.
+ */
+
+ /*
+ * pps_ntp_timestamp_from_counter takes the two flavors
+ * of timestamp we have (counter and system time) and
+ * uses whichever it can to give the best NTP fixed-point
+ * conversion. In ntpd the Counterstamp is typically
+ * used. A stub implementation in timepps.h simply
+ * converts from Windows timestamp to NTP fixed-point.
+ * We call through a pointer to get ntpd's version.
+ */
+ (*pskelunit->p_ntp_timestamp_from_counter)(
+ &infobuf.assert_timestamp_ntpfp,
+ WindowsTimestamp,
+ Counterstamp);
+
+ /*
+ * Note that only assert timestamps
+ * are captured by this interface.
+ */
+ infobuf.assert_sequence = 0; /* ADD CODE */
+
+ /*
+ * Apply offset and translate to specified format
+ */
+ switch (tsformat) {
+ case PPS_TSFMT_NTPFP: /* NTP format requires no translation */
+ if (unit->params.mode & PPS_OFFSETASSERT) {
+ NTPFP_L_ADDS(&infobuf.assert_timestamp_ntpfp,
+ &unit->params.assert_offset_ntpfp);
+ }
+ break;
+
+ case PPS_TSFMT_TSPEC: /* timespec format requires conversion to nsecs form */
+ PPS_NTPTOTSPEC(infobuf.assert_timestamp);
+ if (unit->params.mode & PPS_OFFSETASSERT) {
+ infobuf.assert_timestamp.tv_sec +=
+ unit->params.assert_offset.tv_sec;
+ infobuf.assert_timestamp.tv_nsec +=
+ unit->params.assert_offset.tv_nsec;
+ PPS_NORMALIZE(infobuf.assert_timestamp);
+ }
+ break;
+
+ default:
+ return EINVAL;
+ }
+
+ infobuf.current_mode = unit->params.mode;
+ *pinfo = infobuf;
+ return (0);
+}
+
+
+/*
+ * prov_time_pps_kcbind - specify kernel consumer
+ *
+ * Not supported so far by Windows.
+ */
+int WINAPI
+prov_time_pps_kcbind(
+ pps_unit_t * punit,
+ void * context,
+ const int kernel_consumer,
+ const int edge,
+ const int tsformat
+ )
+{
+ UNUSED(punit);
+ UNUSED(context);
+ UNUSED(kernel_consumer);
+ UNUSED(edge);
+ UNUSED(tsformat);
+
+ return EOPNOTSUPP;
+}
+
+
+/*
+ * prov_init - returns capabilities and provider name
+ */
+int WINAPI
+ppsapi_prov_init(
+ int ppsapi_timepps_prov_ver,
+ pcreate_pps_handle create_pps_handle,
+ ppps_ntp_timestamp_from_counter ntp_timestamp_from_counter,
+ char * short_name_buf,
+ size_t short_name_size,
+ char * full_name_buf,
+ size_t full_name_size
+ )
+{
+ ppsapi_provider test_prov;
+
+ if (ppsapi_timepps_prov_ver < PPSAPI_TIMEPPS_PROV_VER)
+ return 0;
+
+ p_create_pps_handle = create_pps_handle;
+ p_ntp_timestamp_from_counter = ntp_timestamp_from_counter;
+
+ strncpy(short_name_buf, "skeleton", short_name_size);
+ strncpy(full_name_buf,
+ "skeleton, ADD CODE to make useful",
+ full_name_size);
+
+ /*
+ * Use function pointer prototypes from timepps.h to verify
+ * our prototypes match with some otherwise pointless code.
+ */
+ test_prov.ptime_pps_create = &prov_time_pps_create;
+ test_prov.ptime_pps_destroy = &prov_time_pps_destroy;
+ test_prov.ptime_pps_fetch = &prov_time_pps_fetch;
+ test_prov.ptime_pps_kcbind = &prov_time_pps_kcbind;
+ test_prov.ptime_pps_setparams = &prov_time_pps_setparams;
+
+ return SKELPPS_CAPS;
+}
diff --git a/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.def b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.def
new file mode 100644
index 000000000000..ef29709b0f67
--- /dev/null
+++ b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.def
@@ -0,0 +1,9 @@
+LIBRARY "skeleton-ppsapi-provider.dll"
+
+EXPORTS
+ ppsapi_prov_init
+ prov_time_pps_create
+ prov_time_pps_destroy
+ prov_time_pps_fetch
+ prov_time_pps_kcbind
+ prov_time_pps_setparams \ No newline at end of file
diff --git a/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.h b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.h
new file mode 100644
index 000000000000..2bb79911152f
--- /dev/null
+++ b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.h
@@ -0,0 +1,22 @@
+//
+// serialpps-ppsapi-provider.h
+//
+// For this tiny project the single header serves as a precompiled header
+// as well, meaning all the bulky headers are included before or within it.
+// Within, in this case.
+//
+
+#define _CRT_SECURE_NO_WARNINGS
+#include <stdio.h>
+/* Prevent inclusion of winsock.h in windows.h */
+#ifndef _WINSOCKAPI_
+#define _WINSOCKAPI_
+#endif
+#include <windows.h>
+typedef DWORD u_int32;
+#include "sys/time.h"
+#include "../../include/timepps.h"
+
+#ifndef UNUSED
+#define UNUSED(item) ((void)(item))
+#endif
diff --git a/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.sln b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.sln
new file mode 100644
index 000000000000..8c2417a91c88
--- /dev/null
+++ b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.sln
@@ -0,0 +1,19 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "skeleton-ppsapi-provider", "skeleton-ppsapi-provider.vcproj", "{F7842ACD-EB61-4D65-9999-AFB0E77E63EA}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {F7842ACD-EB61-4D65-9999-AFB0E77E63EA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F7842ACD-EB61-4D65-9999-AFB0E77E63EA}.Debug|Win32.Build.0 = Debug|Win32
+ {F7842ACD-EB61-4D65-9999-AFB0E77E63EA}.Release|Win32.ActiveCfg = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.vcproj b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.vcproj
new file mode 100644
index 000000000000..bab3e7d404aa
--- /dev/null
+++ b/ports/winnt/ppsapi/skelprov/skeleton-ppsapi-provider.vcproj
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="skeleton-ppsapi-provider"
+ ProjectGUID="{F7842ACD-EB61-4D65-9999-AFB0E77E63EA}"
+ RootNamespace="skeletonppsapiprovider"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="."
+ PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;"
+ MinimalRebuild="true"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderThrough="skeleton-ppsapi-provider.h"
+ BrowseInformation="1"
+ WarningLevel="3"
+ DebugInformationFormat="4"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="2"
+ GenerateManifest="false"
+ ModuleDefinitionFile="skeleton-ppsapi-provider.def"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+ IntermediateDirectory="$(ConfigurationName)"
+ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="."
+ PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderThrough="skeleton-ppsapi-provider.h"
+ BrowseInformation="1"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ LinkIncremental="1"
+ GenerateManifest="false"
+ ModuleDefinitionFile="skeleton-ppsapi-provider.def"
+ GenerateDebugInformation="true"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath=".\skeleton-ppsapi-provider.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ GeneratePreprocessedFile="0"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath=".\skeleton-ppsapi-provider.h"
+ >
+ </File>
+ <File
+ RelativePath=".\sys\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\timepps.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/ppsapi/skelprov/sys/time.h b/ports/winnt/ppsapi/skelprov/sys/time.h
new file mode 100644
index 000000000000..079e5b64431f
--- /dev/null
+++ b/ports/winnt/ppsapi/skelprov/sys/time.h
@@ -0,0 +1,18 @@
+/*
+ * This sys/time.h is part of ppsapi-prov skeleton sample source code
+ * for a Windows PPSAPI provider DLL. It was adapted from
+ * ports/winnt/include/sys/time.h in ntpd.
+ */
+
+#ifndef SYS_TIME_H
+#define SYS_TIME_H
+
+#include <windows.h>
+#include <time.h>
+
+typedef struct timespec {
+ time_t tv_sec;
+ long tv_nsec;
+} timespec_t;
+
+#endif /* SYS_TIME_H */
diff --git a/ports/winnt/scripts/mkver.bat b/ports/winnt/scripts/mkver.bat
new file mode 100755
index 000000000000..7b448299607d
--- /dev/null
+++ b/ports/winnt/scripts/mkver.bat
@@ -0,0 +1,439 @@
+@echo off
+GOTO PROG
+
+see notes/remarks directly below this header:
+######################################################################
+#
+# Revision: mkver.bat
+# Author: Frederick Czajka
+# Date: 02/10/2000
+# Purpose: Provide a NT Shell script to replace the perl script
+# that replaced the UNIX mkver shell script.
+#
+#
+#
+# Notes: I had two goals with this script one to only use native
+# NT Shell commands and two was too emulate the PERL style
+# output. This required some work for the DATE format as
+# you will see and TIME was really tricky to get a format
+# matching PERLs!
+#
+#
+# Changes:
+# 02/23/2011 David J Taylor - Use reg instead of regedit so "run as
+# administrator" is not required.
+# 12/21/2009 Dave Hart
+# - packageinfo.sh uses prerelease= now not
+# releasecandidate=
+# 08/28/2009 Dave Hart
+# - support for building using per-compiler subdirs of winnt
+# 08/08/2006 Heiko Gerstung
+# - bugfixed point / rcpoint errors leading to a wrong
+# version string
+# - added a few cases for uppercase strings
+# 03/09/2005 Heiko Gerstung
+# - added UTC offset to version time information
+# - bugfixed several issues preventing this script to be used on NT4
+# - removed an obsolete warning
+#
+# 03/08/2005 Danny Mayer
+# - bugfixed NOBK label position
+#
+# 03/08/2005 Heiko Gerstung
+# - bugfixed BK detection and support for multiple ChangeSets
+#
+# 02/24/2005 Heiko Gerstung
+# - check if BK is installed and do not try to call it if not
+#
+#
+# 02/03/2005 Heiko Gerstung
+# - now getting NTP version from version.m4 (not configure)
+# - added BK ChangeSet revision and Openssl-Indicator (-o)
+# to the version number
+# - major rework of the time and date recognition routines
+# in order to reflect international settings and OS-
+# dependand formats
+#
+######################################################################
+
+Notes/Howtos:
+
+If you spot an error stating that bk.exe could not be found or executed
+although it is installed on your computer, you should try to add the path
+to your BK binary in your IDE configuration (for VisualStudio see
+Tools/Options/Directories/Executables).
+
+Alternatively you can create a file called 'version' in the root path of
+your ntp source tree which holds a string that is added to the version number.
+
+
+:PROG
+IF {%1} == {} GOTO USAGE
+IF {%1} == {-H} GOTO USAGE
+IF {%2} == {} GOTO USAGE
+IF {%1} == {-P} GOTO BEGIN
+
+
+
+REM *****************************************************************************************************************
+REM For any other bizarre permutation...
+REM *****************************************************************************************************************
+GOTO USAGE
+
+:BEGIN
+
+SET GENERATED_PROGRAM=%2
+
+REM *****************************************************************************************************************
+REM Reimplemented from orginal Unix Shell script
+REM *****************************************************************************************************************
+ IF NOT EXIST .version ECHO 0 > .version
+ FOR /F %%i IN (.version) do @SET RUN=%%i
+ SET /A RUN=%RUN%+1
+ ECHO %RUN% > .version
+
+REM *****************************************************************************************************************
+REM Resetting variables
+REM *****************************************************************************************************************
+ SET VER=
+ SET CSET=
+ SET SSL=
+ SET MYDATE=
+ SET MYTIME=
+ SET DAY=99
+ SET NMM=99
+ SET YEAR=0
+ SET HOUR=
+ SET MIN=
+ SET MMIN=
+ SET SEC=
+ SET SUBSEC=
+ SET DATEDELIM=
+ SET TIMEDELIM=
+ SET DATEFORMAT=
+ SET TIMEFORMAT=
+ SET UTC=
+ SET ACTIVEBIAS=
+
+REM *****************************************************************************************************************
+REM Check if DATE and TIME environment variables are available
+REM *****************************************************************************************************************
+
+ SET MYDATE=%DATE%
+ SET MYTIME=%TIME%
+
+ REM ** Not available (huh? Are you older than NT4SP6A, grandpa?)
+ IF "%MYDATE%" == "" FOR /F "TOKENS=1 DELIMS=" %%a IN ('date/t') DO SET MYDATE=%%a
+ IF "%MYTIME%" == "" FOR /F "TOKENS=1 DELIMS=" %%a IN ('time/t') DO SET MYTIME=%%a
+
+REM *****************************************************************************************************************
+REM Try to find out UTC offset
+REM *****************************************************************************************************************
+
+ REM *** Start with setting a dummy value which is used when we are not able to find out the real UTC offset
+ SET UTC=(LOCAL TIME)
+ SET UTC_HR=
+ SET UTC_MIN=
+ SET UTC_SIGN=
+
+ REM *** Now get the timezone settings from the registry
+ reg export "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" %TEMP%\TZ-%GENERATED_PROGRAM%.TMP
+ REM was: regedit /e %TEMP%\TZ-%GENERATED_PROGRAM%.TMP "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation"
+ IF NOT EXIST %TEMP%\TZ-%GENERATED_PROGRAM%.TMP GOTO NOTZINFO
+
+ for /f "Tokens=1* Delims==" %%a in ('type %TEMP%\TZ-%GENERATED_PROGRAM%.TMP') do if %%a == "ActiveTimeBias" SET ACTIVEBIAS=%%b
+ for /f "Tokens=1* Delims=:" %%a in ('echo %ACTIVEBIAS%') do ( SET ACTIVEBIAS=%%b & SET PARTYP=%%a )
+
+ REM *** Clean up temporary file
+ IF EXIST %TEMP%\TZ-%GENERATED_PROGRAM%.TMP DEL %TEMP%\TZ-%GENERATED_PROGRAM%.TMP
+
+ REM *** Check if we really got a dword value from the registry ...
+ IF NOT "%PARTYP%"=="dword " goto NOTZINFO
+
+ REM *** Check if we are in UTC timezone, then we can avoid some stress...
+ if "%ACTIVEBIAS%" == "00000000" SET UTC=(UTC) & GOTO NOTZINFO
+
+ SET HI=0x%ACTIVEBIAS:~0,4%
+ SET LO=0x%ACTIVEBIAS:~4,4%
+
+ if "%HI%"=="0xffff" ( SET /A ACTIVEBIAS=%LO% - %HI% - 1 ) ELSE ( SET /A ACTIVEBIAS=%LO%)
+ SET /A UTC_HR="%ACTIVEBIAS%/60"
+ SET /A UTC_MIN="%ACTIVEBIAS% %% 60"
+ SET UTC_SIGN=%ACTIVEBIAS:~0,1%
+
+ REM *** check the direction in which the local timezone alters UTC time
+ IF NOT "%UTC_SIGN%"=="-" SET UTC_SIGN=+
+ IF "%UTC_SIGN%"=="-" SET UTC_HR=%UTC_HR:~1,2%
+
+ REM *** Now turn the direction, because we need to know it from the viewpoint of UTC
+ IF "%UTC_SIGN%"=="+" (SET UTC_SIGN=-) ELSE (SET UTC_SIGN=+)
+
+ REM *** Put the values in a "00" format
+ IF %UTC_HR% LEQ 9 SET UTC_HR=0%UTC_HR%
+ IF %UTC_MIN% LEQ 9 SET UTC_MIN=0%UTC_MIN%
+
+ REM *** Set up UTC offset string used in version string
+ SET UTC=(UTC%UTC_SIGN%%UTC_HR%:%UTC_MIN%)
+
+
+:NOTZINFO
+echo off
+
+REM *****************************************************************************************************************
+REM Now grab the Version number out of the source code (using the packageinfo.sh file...)
+REM *****************************************************************************************************************
+
+ REM First, get the main NTP version number. In recent versions this must be extracted
+ REM from a packageinfo.sh file while in earlier versions the info was available from
+ REM a version.m4 file.
+ SET F_PACKAGEINFO_SH=..\..\..\..\packageinfo.sh
+ IF EXIST %F_PACKAGEINFO_SH% goto VER_FROM_PACKAGE_INFO
+ REM next two lines can go away when all windows compilers are building under
+ rem ports\winnt\<compiler dir>\<binary name dir> (ports\winnt\vs2008\ntpd)
+ rem rather than ports\winnt\<binary name dir> (ports\winnt\ntpd)
+ SET F_PACKAGEINFO_SH=..\..\..\packageinfo.sh
+ IF EXIST %F_PACKAGEINFO_SH% goto VER_FROM_PACKAGE_INFO
+ goto ERRNOVERF
+
+:VER_FROM_PACKAGE_INFO
+ REM Get version from packageinfo.sh file, which contains lines reading e.g.
+
+ TYPE %F_PACKAGEINFO_SH% | FIND /V "rcpoint=" | FIND /V "betapoint=" | FIND "point=" > point.txt
+ SET F_POINT_SH=point.txt
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "proto=" %%F_PACKAGEINFO_SH%%') DO SET PROTO=%%a
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "major=" %%F_PACKAGEINFO_SH%%') DO SET MAJOR=%%a
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "minor=" %%F_PACKAGEINFO_SH%%') DO SET MINOR=%%a
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "point=" %%F_POINT_SH%%') DO SET POINT=%%a
+ IF "%POINT%"=="NEW" set POINT=
+ IF NOT "%POINT%"=="" set POINT=p%POINT%
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "betapoint=" %%F_PACKAGEINFO_SH%%') DO SET BETAPOINT=%%a
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "rcpoint=" %%F_PACKAGEINFO_SH%%') DO SET RCPOINT=%%a
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "special=" %%F_PACKAGEINFO_SH%%') DO SET SPECIAL=%%a
+ IF NOT "%SPECIAL%"=="" set SPECIAL=-%SPECIAL%
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "prerelease=" %%F_PACKAGEINFO_SH%%') DO SET PRERELEASE=%%a
+ IF /I "%PRERELEASE%"=="beta" set PR_SUF=-beta
+ IF /I "%PRERELEASE%"=="rc" set PR_SUF=-RC
+
+ FOR /F "eol=# TOKENS=2 DELIMS==" %%a IN ('findstr "repotype=" %%F_PACKAGEINFO_SH%%') DO SET REPOTYPE=%%a
+ IF /I "%REPOTYPE%"=="stable" set REPOTYPE=STABLE
+
+ IF NOT "%REPOTYPE%"=="STABLE" SET RCPOINT=
+ IF "%PR_SUF%"=="-RC" set PR_POINT=%RCPOINT%
+ IF "%PR_SUF%"=="-beta" set PR_POINT=%BETAPOINT%
+
+ SET VER=%PROTO%.%MAJOR%.%MINOR%%POINT%%SPECIAL%%PR_SUF%%PR_POINT%
+
+ REM Now we have the version info, try to add a BK ChangeSet version number
+
+ REM ** Check if BK is installed ...
+ bk -R prs -hr+ -nd:I: ChangeSet 2> NUL > NUL
+ IF ERRORLEVEL 1 GOTO NOBK
+
+ REM ** Try to get the CSet rev directly from BK
+ FOR /F "TOKENS=1 DELIMS==" %%a IN ('bk.exe -R prs -hr+ -nd:I: ChangeSet') DO @SET CSET=%%a
+
+:NOBK
+ REM ** If that was not successful, we'll take a look into a version file, if available
+ IF EXIST ..\..\..\..\sntp\scm-rev (
+ IF "%CSET%"=="" FOR /F "TOKENS=1" %%a IN ('type ..\..\..\..\sntp\scm-rev') DO @SET CSET=%%a
+ )
+ REM next if block can go away once all windows compilers are building in
+ REM ports\winnt\<compiler dir>\<binary name dir> (ports\winnt\vs2008\ntpd)
+ IF EXIST ..\..\..\sntp\scm-rev (
+ IF "%CSET%"=="" FOR /F "TOKENS=1" %%a IN ('type ..\..\..\sntp\scm-rev') DO @SET CSET=%%a
+ )
+
+ REM ** Now, expand our version number with the CSet revision, if we managed to get one
+ IF NOT "%CSET%"=="" SET VER=%VER%@%CSET%
+
+ REM We can add a "crypto" identifier (-o) if we see that Crypto support is included in our build
+ REM we always include openssl on windows...
+ SET VER=%VER%-o
+
+
+REM *****************************************************************************************************************
+REM Check for user settings regarding the time and date format, we use the registry to find out...
+REM *****************************************************************************************************************
+
+
+ REM Any temporary files left from a previous run? Go where you belong...
+ IF exist userset.reg del userset.reg
+ IF exist userset.txt del userset.txt
+
+ reg export "HKEY_CURRENT_USER\Control Panel\International" userset.reg
+ REM was: regedit /E userset.reg "HKEY_CURRENT_USER\Control Panel\International"
+ IF not exist userset.reg goto ERRNOREG
+
+ rem *** convert from unicode to ascii if necessary
+ type userset.reg > userset.txt
+
+
+ FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr "iDate" userset.txt') DO SET DATEFORMAT=%%b
+ FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr "iTime" userset.txt') DO SET TIMEFORMAT=%%b
+
+ FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr /R "sDate\>" userset.txt') DO SET DATEDELIM=%%b
+ FOR /F "TOKENS=1-9 DELIMS== " %%a IN ('findstr /R "sTime\>" userset.txt') DO SET TIMEDELIM=%%b
+
+ IF "%TIMEFORMAT%"=="" GOTO ERRNOTIME
+ IF "%DATEFORMAT%"=="" GOTO ERRNODATE
+ IF "%TIMEDELIM%"=="" GOTO ERRNOTIME
+ IF "%DATEDELIM%"=="" GOTO ERRNODATE
+
+ SET TIMEDELIM=%TIMEDELIM:~1,1%
+ SET DATEDELIM=%DATEDELIM:~1,1%
+ SET TIMEFORMAT=%TIMEFORMAT:~1,1%
+ SET DATEFORMAT=%DATEFORMAT:~1,1%
+
+REM *****************************************************************************************************************
+REM Well, well. Its time to look at the time and format it in a standard way (if possible)
+REM *****************************************************************************************************************
+
+
+ FOR /F "TOKENS=1-4 DELIMS=%TIMEDELIM% " %%a IN ('echo %MYTIME%') DO SET AA=%%a&SET BB=%%b&SET CC=%%c&SET DD=%%d
+
+ REM 12H Format
+ IF "%TIMEFORMAT%" == "0" (
+ SET HOUR=%AA%
+ SET MIN=%BB%
+ FOR /F "USEBACKQ TOKENS=1 DELIMS=ap" %%a IN ('%BB%') DO SET MMIN=%%a
+ SET SEC=%CC%
+ SET SUBSEC=%DD%
+ )
+
+ REM Get rid of the "a" or "p" if we have one of these in our minute string
+ IF NOT "%MMIN%"=="%MIN%" FOR /F "USEBACKQ TOKENS=1 DELIMS=ap " %%a IN ('%MIN%') DO SET MIN=%%a
+
+ REM 24H Format
+ IF "%TIMEFORMAT%" == "1" (
+ SET HOUR=%AA%
+ SET MIN=%BB%
+ SET SEC=%CC%
+ SET SUBSEC=%DD%
+ )
+
+ IF "%HOUR%"=="" GOTO ERRNOTIME
+ IF "%MIN%"=="" GOTO ERRNOTIME
+
+ IF "%SEC%"=="" SET SEC=00
+ IF "%SUBSEC%"=="" SET SUBSEC=00
+
+
+REM *****************************************************************************************************************
+REM It's time to format the date :-)
+REM *****************************************************************************************************************
+
+
+ FOR /F "TOKENS=1-4 DELIMS=./- " %%a IN ('ECHO %MYDATE%') DO SET AA=%%a&SET BB=%%b&SET CC=%%c&SET DD=%%d
+
+ IF "%DD%" == "" (
+ REM No Day of Week in Date
+ ( IF "%DATEFORMAT%" == "0" SET DOW=_&SET DAY=%BB%&SET NMM=%AA%&SET YEAR=%CC% )
+ ( IF "%DATEFORMAT%" == "1" SET DOW=_&SET DAY=%AA%&SET NMM=%BB%&SET YEAR=%CC% )
+ ( IF "%DATEFORMAT%" == "2" SET DOW=_&SET DAY=%CC%&SET NMM=%BB%&SET YEAR=%AA% )
+ ) ELSE (
+ ( IF "%DATEFORMAT%" == "0" SET DOW=%AA%&SET DAY=%CC%&SET NMM=%BB%&SET YEAR=%DD% )
+ ( IF "%DATEFORMAT%" == "1" SET DOW=%AA%&SET DAY=%BB%&SET NMM=%CC%&SET YEAR=%DD% )
+ ( IF "%DATEFORMAT%" == "2" SET DOW=%AA%&SET DAY=%DD%&SET NMM=%CC%&SET YEAR=%BB% )
+ )
+
+ REM Something went wrong, we weren't able to get a valid date
+ IF NOT "%YEAR%" == "0" GOTO DATEOK
+ goto ERRNODATE
+
+:DATEOK
+
+ REM Clean up any temporary files we may have created...
+ REM IF exist userset.reg del userset.reg
+ REM IF exist userset.txt del userset.txt
+
+ IF "%NMM%" == "01" SET MONTH=Jan
+ IF "%NMM%" == "02" SET MONTH=Feb
+ IF "%NMM%" == "03" SET MONTH=Mar
+ IF "%NMM%" == "04" SET MONTH=Apr
+ IF "%NMM%" == "05" SET MONTH=May
+ IF "%NMM%" == "06" SET MONTH=Jun
+ IF "%NMM%" == "07" SET MONTH=Jul
+ IF "%NMM%" == "08" SET MONTH=Aug
+ IF "%NMM%" == "09" SET MONTH=Sep
+ IF "%NMM%" == "10" SET MONTH=Oct
+ IF "%NMM%" == "11" SET MONTH=Nov
+ IF "%NMM%" == "12" SET MONTH=Dec
+
+ IF NOT {%MONTH%} == {} GOTO DATE_OK
+
+ REM *** Not US date format! Assume ISO: yyyy-mm-dd
+
+ FOR /F "TOKENS=1-4 DELIMS=/- " %%a IN ('date/t') DO SET DAY=%%a&SET yyyy=%%b&SET nmm=%%c&SET dd=%%d
+
+ echo a=%%a b=%%b c=%%c d=%%d
+ IF "%NMM%" == "01" SET MONTH=Jan
+ IF "%NMM%" == "02" SET MONTH=Feb
+ IF "%NMM%" == "03" SET MONTH=Mar
+ IF "%NMM%" == "04" SET MONTH=Apr
+ IF "%NMM%" == "05" SET MONTH=May
+ IF "%NMM%" == "06" SET MONTH=Jun
+ IF "%NMM%" == "07" SET MONTH=Jul
+ IF "%NMM%" == "08" SET MONTH=Aug
+ IF "%NMM%" == "09" SET MONTH=Sep
+ IF "%NMM%" == "10" SET MONTH=Oct
+ IF "%NMM%" == "11" SET MONTH=Nov
+ IF "%NMM%" == "12" SET MONTH=Dec
+
+:DATE_OK
+ IF "%SS" == "" SET SS="00"
+
+
+REM *****************************************************************************************************************
+REM Now create a valid version.c file ...
+REM *****************************************************************************************************************
+
+ ECHO Version %VER% Build %RUN% date %MONTH%/%DAY%/%YEAR% time %HOUR%:%MIN%:%SEC% %UTC%
+ ECHO char * Version = "%GENERATED_PROGRAM% %VER% %MONTH% %DAY% %HOUR%:%MIN%:%SEC% %UTC% %YEAR% (%RUN%)" ; > version.c
+ GOTO EOF
+
+
+REM *****************************************************************************************************************
+REM Here are the error messages I know
+REM *****************************************************************************************************************
+:ERRNOREG
+ ECHO "Error: Registry could not be read (check if reg.exe is available and works as expected)"
+ GOTO EOF
+
+
+:ERRNODATE
+ ECHO "Error: Dateformat unknown (check if contents of userset.txt are correctly, especially for iDate and sDate)"
+ GOTO EOF
+
+:ERRNOTIME
+ ECHO "Error: Timeformat unknown (check if contents of userset.txt are correctly, especially for iTime and sTime)"
+ GOTO EOF
+
+:ERRNOVERF
+ ECHO "Error: Version file not found (searching for ..\..\..\..\packageinfo.sh)"
+ GOTO EOF
+
+
+REM *****************************************************************************************************************
+REM Show'em how to run (me)
+REM *****************************************************************************************************************
+:USAGE
+
+ ECHO Usage: mkver.bat [ -P <Program Name> -H ]
+ ECHO -P Database Name
+ ECHO -H Help on options
+
+REM *****************************************************************************************************************
+REM All good things come to an end someday. Time to leave
+REM *****************************************************************************************************************
+:EOF
+
+REM *** Cleaning up
+IF EXIST point.txt DEL point.txt
+IF EXIST userset.txt DEL userset.txt
+IF EXIST userset.reg DEL userset.reg
diff --git a/ports/winnt/vs2005/Instsrv.vcproj b/ports/winnt/vs2005/Instsrv.vcproj
new file mode 100644
index 000000000000..74ccb8171dca
--- /dev/null
+++ b/ports/winnt/vs2005/Instsrv.vcproj
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="instsrv"
+ ProjectGUID="{EAA8D0C8-A8AF-4C40-BF14-4A94570DE033}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\instsrv\Debug"
+ IntermediateDirectory=".\instsrv\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\instsrv\Debug/Instsrv.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\include,..\include,."
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_WIN32_WINNT=0x400;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile=".\instsrv\Debug/Instsrv.pch"
+ AssemblerListingLocation=".\instsrv\Debug/"
+ ObjectFile=".\instsrv\Debug/"
+ ProgramDataBaseFileName=".\instsrv\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="bin/Debug/Instsrv.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\instsrv\Debug/Instsrv.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\instsrv\Debug/Instsrv.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\instsrv\Release"
+ IntermediateDirectory=".\instsrv\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\instsrv\Release/Instsrv.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..\include,..\include,."
+ PreprocessorDefinitions="NDEBUG;_WINDOWS;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_WIN32_WINNT=0x400;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\instsrv\Release/Instsrv.pch"
+ AssemblerListingLocation=".\instsrv\Release/"
+ ObjectFile=".\instsrv\Release/"
+ ProgramDataBaseFileName=".\instsrv\Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ OutputFile="bin/Release/Instsrv.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile=".\instsrv\Release/Instsrv.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\instsrv\Release/Instsrv.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\instsrv\instsrv.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2005/libntp.vcproj b/ports/winnt/vs2005/libntp.vcproj
new file mode 100644
index 000000000000..f2d0b9e714df
--- /dev/null
+++ b/ports/winnt/vs2005/libntp.vcproj
@@ -0,0 +1,864 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="libntp"
+ ProjectGUID="{ECDDC7EE-5805-4603-B38D-804C09BDC910}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\libntp\Debug"
+ IntermediateDirectory=".\libntp\Debug"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_LIB;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_WIN32_WINNT=0x400;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\libntp\Debug/libntp.pch"
+ AssemblerListingLocation=".\libntp\Debug/"
+ ObjectFile=".\libntp\Debug/"
+ ProgramDataBaseFileName=".\libntp\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\libntp\Debug\libntp.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\libntp\Debug/libntp.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\libntp\Release"
+ IntermediateDirectory=".\libntp\Release"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_LIB;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_WIN32_WINNT=0x400;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\libntp\Release/libntp.pch"
+ AssemblerListingLocation=".\libntp\Release/"
+ ObjectFile=".\libntp\Release/"
+ ProgramDataBaseFileName=".\libntp\Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile=".\libntp\Release\libntp.lib"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\libntp\Release/libntp.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\libntp\a_md5encrypt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\adjtime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\assertions.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\atoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\atolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\atouint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\authkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\authreadkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\authusekey.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\buffer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\backtrace-emtpytbl.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\backtrace.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\buftvtots.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\caljulian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\caltontp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\calyearstart.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\clocktime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\clocktypes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\condition.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\decodenetnum.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\dofptoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\dolfptoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\emalloc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\error.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\event.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\findconfig.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\getclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\getopt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\hextoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\hextolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\humandate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\icom.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\inet_aton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\inet_ntop.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\inet_pton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\interfaceiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\iosignal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\lib.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\lib_strbuf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\sntp\libopts\libopts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\log.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\machines.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\md5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\mktime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\modetoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\nls\msgcat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\mstolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\msyslog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\net.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\netaddr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\netof.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\netscope.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_calendar.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_intres.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_libopts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_lineedit.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_random.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_rfc2553.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_worker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\numtoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\numtohost.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\octtoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\once.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\ondestroy.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\prettydate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\randfile.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\recvbuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\refnumtoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\setpriority.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\SetSystemTime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\snprintf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\sockaddr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\socket.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\socktoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\socktohost.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ssl_init.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\statestr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\stdtime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\strerror.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\strl_obsd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\syslog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\syssignal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\systime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\task.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\termios.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\thread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\time.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\timetoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\timevalops.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\uglydate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\util_clockstuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\libntp\win32_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\win32os.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\work_fork.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\work_thread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ymd2yd.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\include\binio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\buffer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\clockstuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\condition.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\event.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\global.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\hash.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ieee754io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\netinet\in.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\arpa\inet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\interfaceiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\intreswork.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\inttypes.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\ioctl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\iosignal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\ipv6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\lib_strbuf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\log.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\md5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\isc\mem.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\isc\netaddr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\netdb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\isc\netscope.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_calendar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_if.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\ntp_iocompletionport.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_lists.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_malloc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_refclock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\ntp_timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_intres.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\ondestroy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\recvbuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\signal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\stat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\stdtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\task.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\termios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\thread.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\win32_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\win32os.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ >
+ <File
+ RelativePath="..\libntp\messages.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ >
+ <File
+ RelativePath="..\libntp\messages.mc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Message Compiler"
+ CommandLine="mc -h $(InputDir) -r $(InputDir) -e h $(InputPath)&#x0D;&#x0A;"
+ Outputs="$(InputDir)$(InputName).rc;$(InputDir)$(InputName).h;$(InputDir)msg00001.bin"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Message Compiler"
+ CommandLine="mc -h $(InputDir) -r $(InputDir) -e h $(InputPath)&#x0D;&#x0A;"
+ Outputs="$(InputDir)$(InputName).rc;$(InputDir)$(InputName).h;$(InputDir)msg00001.bin"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2005/ntp.sln b/ports/winnt/vs2005/ntp.sln
new file mode 100644
index 000000000000..6b840bed78b1
--- /dev/null
+++ b/ports/winnt/vs2005/ntp.sln
@@ -0,0 +1,70 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "instsrv", "Instsrv.vcproj", "{EAA8D0C8-A8AF-4C40-BF14-4A94570DE033}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libntp", "libntp.vcproj", "{ECDDC7EE-5805-4603-B38D-804C09BDC910}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpd", "ntpd.vcproj", "{F6F7E7C0-AE5E-4D7C-A17E-A3043FE68664}"
+ ProjectSection(ProjectDependencies) = postProject
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910} = {ECDDC7EE-5805-4603-B38D-804C09BDC910}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpdate", "ntpdate.vcproj", "{9BF928B1-8A1A-4A0D-BE6D-38EDAD29F416}"
+ ProjectSection(ProjectDependencies) = postProject
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910} = {ECDDC7EE-5805-4603-B38D-804C09BDC910}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpdc", "ntpdc.vcproj", "{C82634BB-AC80-4796-B2AF-2903C665ED17}"
+ ProjectSection(ProjectDependencies) = postProject
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910} = {ECDDC7EE-5805-4603-B38D-804C09BDC910}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpkeygen", "ntpkeygen.vcproj", "{9B768B99-2BC8-4A4C-AC0D-A7DA9C695825}"
+ ProjectSection(ProjectDependencies) = postProject
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910} = {ECDDC7EE-5805-4603-B38D-804C09BDC910}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpq", "ntpq.vcproj", "{EA10E04E-946B-44A6-B0AB-B5B93A160744}"
+ ProjectSection(ProjectDependencies) = postProject
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910} = {ECDDC7EE-5805-4603-B38D-804C09BDC910}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {EAA8D0C8-A8AF-4C40-BF14-4A94570DE033}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EAA8D0C8-A8AF-4C40-BF14-4A94570DE033}.Debug|Win32.Build.0 = Debug|Win32
+ {EAA8D0C8-A8AF-4C40-BF14-4A94570DE033}.Release|Win32.ActiveCfg = Release|Win32
+ {EAA8D0C8-A8AF-4C40-BF14-4A94570DE033}.Release|Win32.Build.0 = Release|Win32
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910}.Debug|Win32.ActiveCfg = Debug|Win32
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910}.Debug|Win32.Build.0 = Debug|Win32
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910}.Release|Win32.ActiveCfg = Release|Win32
+ {ECDDC7EE-5805-4603-B38D-804C09BDC910}.Release|Win32.Build.0 = Release|Win32
+ {F6F7E7C0-AE5E-4D7C-A17E-A3043FE68664}.Debug|Win32.ActiveCfg = Debug|Win32
+ {F6F7E7C0-AE5E-4D7C-A17E-A3043FE68664}.Debug|Win32.Build.0 = Debug|Win32
+ {F6F7E7C0-AE5E-4D7C-A17E-A3043FE68664}.Release|Win32.ActiveCfg = Release|Win32
+ {F6F7E7C0-AE5E-4D7C-A17E-A3043FE68664}.Release|Win32.Build.0 = Release|Win32
+ {9BF928B1-8A1A-4A0D-BE6D-38EDAD29F416}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9BF928B1-8A1A-4A0D-BE6D-38EDAD29F416}.Debug|Win32.Build.0 = Debug|Win32
+ {9BF928B1-8A1A-4A0D-BE6D-38EDAD29F416}.Release|Win32.ActiveCfg = Release|Win32
+ {9BF928B1-8A1A-4A0D-BE6D-38EDAD29F416}.Release|Win32.Build.0 = Release|Win32
+ {C82634BB-AC80-4796-B2AF-2903C665ED17}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C82634BB-AC80-4796-B2AF-2903C665ED17}.Debug|Win32.Build.0 = Debug|Win32
+ {C82634BB-AC80-4796-B2AF-2903C665ED17}.Release|Win32.ActiveCfg = Release|Win32
+ {C82634BB-AC80-4796-B2AF-2903C665ED17}.Release|Win32.Build.0 = Release|Win32
+ {9B768B99-2BC8-4A4C-AC0D-A7DA9C695825}.Debug|Win32.ActiveCfg = Debug|Win32
+ {9B768B99-2BC8-4A4C-AC0D-A7DA9C695825}.Debug|Win32.Build.0 = Debug|Win32
+ {9B768B99-2BC8-4A4C-AC0D-A7DA9C695825}.Release|Win32.ActiveCfg = Release|Win32
+ {9B768B99-2BC8-4A4C-AC0D-A7DA9C695825}.Release|Win32.Build.0 = Release|Win32
+ {EA10E04E-946B-44A6-B0AB-B5B93A160744}.Debug|Win32.ActiveCfg = Debug|Win32
+ {EA10E04E-946B-44A6-B0AB-B5B93A160744}.Debug|Win32.Build.0 = Debug|Win32
+ {EA10E04E-946B-44A6-B0AB-B5B93A160744}.Release|Win32.ActiveCfg = Release|Win32
+ {EA10E04E-946B-44A6-B0AB-B5B93A160744}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/ports/winnt/vs2005/ntpd.vcproj b/ports/winnt/vs2005/ntpd.vcproj
new file mode 100644
index 000000000000..005f287bcd5b
--- /dev/null
+++ b/ports/winnt/vs2005/ntpd.vcproj
@@ -0,0 +1,1893 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="ntpd"
+ ProjectGUID="{F6F7E7C0-AE5E-4D7C-A17E-A3043FE68664}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\ntpd\Release"
+ IntermediateDirectory=".\ntpd\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpd\Release/ntpd.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,..\..\..\ntpd,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\ntpd\Release/ntpd.pch"
+ AssemblerListingLocation=".\ntpd\Release/"
+ ObjectFile=".\ntpd\Release/"
+ ProgramDataBaseFileName=".\ntpd\Release/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Release/ntpd.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile="bin/Release/ntpd.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpd\Release/ntpd.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\ntpd\Debug"
+ IntermediateDirectory=".\ntpd\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpd\Debug/ntpd.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,..\..\..\ntpd,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\ntpd\Debug/ntpd.pch"
+ AssemblerListingLocation=".\ntpd\Debug/"
+ ObjectFile=".\ntpd\Debug/"
+ ProgramDataBaseFileName=".\ntpd\Debug/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="odbc32.lib odbccp32.lib ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Debug/ntpd.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="bin/Debug/ntpd.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpd\Debug/ntpd.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\ntpd\cmd_args.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\ntpd\nt_clockstuff.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_config.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_control.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_crypto.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_filegen.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_io.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\ntpd\ntp_iocompletionport.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_leapsec.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_loopfilter.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_monitor.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_parser.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_peer.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_proto.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_refclock.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_request.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_restrict.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_scanner.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_timer.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_util.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntpd-opts.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntpd.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\ntpd\ntservice.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\include\ascii.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\assertions.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\binio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\boolean.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\clockstuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\hopf_PCI_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ieee754io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\netinet\in.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\arpa\inet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\isc\int.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\interfaceiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\iosignal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\isc\ipv6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\jupiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\log.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\mbg_gps166.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\netaddr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\netdb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_calendar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_cmdargs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_filegen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_if.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntp_leapsec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\ntp_iocompletionport.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_malloc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_refclock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\ntp_timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_tty.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_worker.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntp_workimpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\ntpd-opts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\ntpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\ntservice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\isc\offset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\sntp\libopts\autoopts\options.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\param.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\isc\platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\include\recvbuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\include\isc\result.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\termios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\sys\wait.h"
+ >
+ </File>
+ <File
+ RelativePath="..\include\win32_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\lib\isc\win32\include\isc\win32os.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ >
+ <File
+ RelativePath="..\libntp\messages.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\ntp-dev-4.2.5p209\ports\winnt\libntp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="\ntp-dev-4.2.5p209\ports\winnt\libntp"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libntp\MSG00001.bin"
+ >
+ </File>
+ <File
+ RelativePath="version.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="..\libntp\messages.mc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Reference Clock"
+ >
+ <File
+ RelativePath="..\ntpd\hopf_PCI_io.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_acts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_arbiter.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_arc.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_as2201.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_atom.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_bancomm.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_chronolog.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_chu.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_conf.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_datum.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_dumbclock.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_gpsvme.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_heath.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_hopfpci.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_hopfser.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_hpgps.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_irig.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_jupiter.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_leitch.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_local.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_msfees.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_mx4200.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_nmea.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_oncore.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_palisade.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_palisade.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_parse.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_pst.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_ptbacts.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_shm.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_tpro.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_true.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tsyncpci.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_usno.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpd\refclock_wwvb.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Parse Lib"
+ >
+ <File
+ RelativePath="..\..\..\libparse\clk_computime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_dcf7000.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_hopf6021.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_meinberg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_rawdcf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_rcc8000.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_schmid.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_trimtaip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_trimtsip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_trimtsip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_varitext.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\clk_wharton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\data_mbg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\parse.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libparse\parse_conf.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\..\configure"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpd&#x0D;&#x0A;"
+ AdditionalDependencies="..\scripts\mkver.bat;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpd&#x0D;&#x0A;"
+ AdditionalDependencies="..\scripts\mkver.bat;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\scripts\mkver.bat"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2005/ntpdate.vcproj b/ports/winnt/vs2005/ntpdate.vcproj
new file mode 100644
index 000000000000..2e40cad47837
--- /dev/null
+++ b/ports/winnt/vs2005/ntpdate.vcproj
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="ntpdate"
+ ProjectGUID="{AF12F490-0BDA-4BC4-8F4B-EDA43B381CB3}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\ntpdate\Debug"
+ IntermediateDirectory=".\ntpdate\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpdate\Debug/ntpdate.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC)"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\ntpdate\Debug/ntpdate.pch"
+ AssemblerListingLocation=".\ntpdate\Debug/"
+ ObjectFile=".\ntpdate\Debug/"
+ ProgramDataBaseFileName=".\ntpdate\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Debug/ntpdate.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="bin/Debug/ntpdate.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpdate\Debug/ntpdate.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\ntpdate\Release"
+ IntermediateDirectory=".\ntpdate\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpdate\Release/ntpdate.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC)"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\ntpdate\Release/ntpdate.pch"
+ AssemblerListingLocation=".\ntpdate\Release/"
+ ObjectFile=".\ntpdate\Release/"
+ ProgramDataBaseFileName=".\ntpdate\Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Release/ntpdate.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile="bin/Release/ntpdate.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpdate\Release/ntpdate.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\ntpdate\ntpdate.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\ntpdate\ntpdate.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\configure"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpdate&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpdate&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2005/ntpdc.vcproj b/ports/winnt/vs2005/ntpdc.vcproj
new file mode 100644
index 000000000000..8339c58ab7d9
--- /dev/null
+++ b/ports/winnt/vs2005/ntpdc.vcproj
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="ntpdc"
+ ProjectGUID="{FA6396FE-2060-4A60-BE9E-86531637FB52}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\ntpdc\Debug"
+ IntermediateDirectory=".\ntpdc\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpdc\Debug/ntpdc.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\ntpdc\Debug/ntpdc.pch"
+ AssemblerListingLocation=".\ntpdc\Debug/"
+ ObjectFile=".\ntpdc\Debug/"
+ ProgramDataBaseFileName=".\ntpdc\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Debug/ntpdc.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="bin/Debug/ntpdc.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpdc\Debug/ntpdc.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\ntpdc\Release"
+ IntermediateDirectory=".\ntpdc\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpdc\Release/ntpdc.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\ntpdc\Release/ntpdc.pch"
+ AssemblerListingLocation=".\ntpdc\Release/"
+ ObjectFile=".\ntpdc\Release/"
+ ProgramDataBaseFileName=".\ntpdc\Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Release/ntpdc.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile="bin/Release/ntpdc.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpdc\Release/ntpdc.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\ntpdc\ntpdc-opts.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpdc\ntpdc.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpdc\ntpdc_ops.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\ntpdc\ntpdc.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\configure"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpdc&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpdc&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2005/ntpkeygen.vcproj b/ports/winnt/vs2005/ntpkeygen.vcproj
new file mode 100644
index 000000000000..b6c0ab8edb0d
--- /dev/null
+++ b/ports/winnt/vs2005/ntpkeygen.vcproj
@@ -0,0 +1,378 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="ntpkeygen"
+ ProjectGUID="{AC45551A-4745-4160-839C-066FBFB255D1}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\ntp-keygen\Debug"
+ IntermediateDirectory=".\ntp-keygen\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntp-keygen\Debug/ntpkeygen.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_WIN32_WINNT=0x400;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\ntp-keygen\Debug/ntpkeygen.pch"
+ AssemblerListingLocation=".\ntp-keygen\Debug/"
+ ObjectFile=".\ntp-keygen\Debug/"
+ ProgramDataBaseFileName=".\ntp-keygen\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib libntp\Debug\libntp.lib"
+ OutputFile="bin/Debug/ntp-keygen.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="bin/Debug/ntp-keygen.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntp-keygen\Debug/ntpkeygen.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\ntp-keygen\Release"
+ IntermediateDirectory=".\ntp-keygen\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntp-keygen\Release/ntpkeygen.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_WIN32_WINNT=0x400;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\ntp-keygen\Release/ntpkeygen.pch"
+ AssemblerListingLocation=".\ntp-keygen\Release/"
+ ObjectFile=".\ntp-keygen\Release/"
+ ProgramDataBaseFileName=".\ntp-keygen\Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib libntp\Release\libntp.lib"
+ OutputFile="bin/Release/ntp-keygen.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile="bin/Release/ntp-keygen.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntp-keygen\Release/ntpkeygen.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\libntp\getopt.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\util\ntp-keygen-opts.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\util\ntp-keygen.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\ntp_random.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\libntp\randfile.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\configure"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntp-keygen&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntp-keygen&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2005/ntpq.vcproj b/ports/winnt/vs2005/ntpq.vcproj
new file mode 100644
index 000000000000..ec7c1a5ae30c
--- /dev/null
+++ b/ports/winnt/vs2005/ntpq.vcproj
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="ntpq"
+ ProjectGUID="{4BD64547-230D-4C0E-9F2C-9D75B4CC0FC7}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\ntpq\Release"
+ IntermediateDirectory=".\ntpq\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpq\Release/ntpq.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ StringPooling="true"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile=".\ntpq\Release/ntpq.pch"
+ AssemblerListingLocation=".\ntpq\Release/"
+ ObjectFile=".\ntpq\Release/"
+ ProgramDataBaseFileName=".\ntpq\Release/"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Release/ntpq.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ ProgramDatabaseFile="bin/Release/ntpq.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpq\Release/ntpq.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\ntpq\Debug"
+ IntermediateDirectory=".\ntpq\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\ntpq\Debug/ntpq.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=".,..\include,..\..\..\include,..\..\..\lib\isc\win32\include,..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1;_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1;_CRT_SECURE_NO_DEPRECATE"
+ MinimalRebuild="true"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ PrecompiledHeaderFile=".\ntpq\Debug/ntpq.pch"
+ AssemblerListingLocation=".\ntpq\Debug/"
+ ObjectFile=".\ntpq\Debug/"
+ ProgramDataBaseFileName=".\ntpq\Debug/"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="bin/Debug/ntpq.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="bin/Debug/ntpq.pdb"
+ SubSystem="1"
+ TargetMachine="1"
+ Version="0x0400"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile=".\ntpq\Debug/ntpq.bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\ntpq\ntpq-opts.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpq\ntpq-subs.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\ntpq\ntpq.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="version.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\ntpq\ntpq.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\configure"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpq&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\scripts\mkver.bat -P ntpq&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/instsrv/instsrv.vcproj b/ports/winnt/vs2008/instsrv/instsrv.vcproj
new file mode 100644
index 000000000000..e3324a66ec6b
--- /dev/null
+++ b/ports/winnt/vs2008/instsrv/instsrv.vcproj
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="instsrv"
+ ProjectGUID="{C3534C4D-6DF1-498E-9904-4337878A1515}"
+ RootNamespace="instsrv"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)Instsrv.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\..\..\include,..\..\include,..\..\instsrv"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)Instsrv.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)instsrv-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="oldnames.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)Instsrv.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..\..\include,..\..\include,..\..\instsrv"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;_WINDOWS;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)Instsrv.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)instsrv-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="oldnames.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\instsrv\instsrv.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/libntp/libntp.vcproj b/ports/winnt/vs2008/libntp/libntp.vcproj
new file mode 100644
index 000000000000..354a8ac64db2
--- /dev/null
+++ b/ports/winnt/vs2008/libntp/libntp.vcproj
@@ -0,0 +1,952 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="libntp"
+ ProjectGUID="{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\libntp,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)libntp.pch"
+ AssemblerListingLocation="$IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(IntDir)"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\libntp,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ GeneratePreprocessedFile="0"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="false"
+ PrecompiledHeaderFile="$(IntDir)libntp.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(IntDir)"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\libntp\a_md5encrypt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\adjtime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\assertions.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\atoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\atolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\atouint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\audio.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\authkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\authreadkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\authusekey.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\backtrace-emptytbl.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\backtrace.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\buffer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\buftvtots.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\caljulian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\caltontp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\calyearstart.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\clocktime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\clocktypes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\condition.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\decodenetnum.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\dofptoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\dolfptoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\emalloc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\error.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\event.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\findconfig.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\getclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\getopt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\hextoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\hextolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\humandate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\icom.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\inet_aton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\inet_ntop.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\inet_pton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\interfaceiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\iosignal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\lib.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\lib_strbuf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\sntp\libopts\libopts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\log.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\machines.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\md5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\mktime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\modetoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\nls\msgcat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\mstolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\msyslog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\net.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\netaddr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\netof.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\netscope.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_calendar.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_crypto_rnd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_intres.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_libopts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_lineedit.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_random.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_rfc2553.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_worker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\numtoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\numtohost.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\octtoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\once.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\ondestroy.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\prettydate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\randfile.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\recvbuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\refnumtoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\setpriority.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\SetSystemTime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\sha1.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\snprintf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\sockaddr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\socket.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\socktoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\socktohost.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ssl_init.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\statestr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\stdtime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\strdup.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\strerror.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\strl_obsd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\syslog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\syssignal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\systime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\task.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\termios.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\thread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\time.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\timetoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\timevalops.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\uglydate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\util_clockstuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\vint64ops.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\win32_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\win32os.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\work_fork.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\work_thread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ymd2yd.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\sntp\libopts\ag-char-map.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\binio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\buffer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\clockstuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\condition.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\declcond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\event.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\gaa_compat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\global.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\hash.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ieee754io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netinet\in.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\arpa\inet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\interfaceiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\intreswork.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\ioctl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\iosignal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\ipv6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\lib_strbuf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\log.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\md5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\isc\mem.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\mutex.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\isc\netaddr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netdb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\isc\netscope.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_assert.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_calendar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_if.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_intres.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_iocompletionport.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_libopts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lists.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_malloc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_md5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_refclock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\ondestroy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\recvbuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\signal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\stat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\stdtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\task.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\termios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\thread.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timespecops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timetoa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timevalops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\vint64ops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\win32_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\win32os.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ >
+ <File
+ RelativePath="..\..\libntp\messages.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ >
+ <File
+ RelativePath="..\..\libntp\messages.mc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Message Compiler"
+ CommandLine="mc -h $(InputDir) -r $(InputDir) -e h $(InputPath)&#x0D;&#x0A;"
+ Outputs="$(InputDir)$(InputName).rc;$(InputDir)$(InputName).h;$(InputDir)msg00001.bin"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Message Compiler"
+ CommandLine="mc -h $(InputDir) -r $(InputDir) -e h $(InputPath)&#x0D;&#x0A;"
+ Outputs="$(InputDir)$(InputName).rc;$(InputDir)$(InputName).h;$(InputDir)msg00001.bin"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj b/ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj
new file mode 100644
index 000000000000..e306108e6f9d
--- /dev/null
+++ b/ports/winnt/vs2008/loopback-pps/loopback-ppsapi-provider.vcproj
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="loopback-ppsapi-provider"
+ ProjectGUID="{1ACE209D-D56E-450B-8711-B73E4ACFC38E}"
+ RootNamespace="loopbackerialppsapiprovider"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include"
+ PreprocessorDefinitions="SYS_WINNT"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderThrough="serialpps-ppsapi-provider.h"
+ AssemblerListingLocation="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)loopback-ppsapi-provider-vc90"
+ BrowseInformation="1"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ntpd.lib"
+ OutputFile="$(OutDir)$(ProjectName).dll"
+ Version="0x0400"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="$(OutDir)"
+ GenerateManifest="false"
+ ModuleDefinitionFile="..\..\ppsapi\loopback\src\loopback-ppsapi.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include"
+ PreprocessorDefinitions="SYS_WINNT"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderThrough="serialpps-ppsapi-provider.h"
+ AssemblerListingLocation="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)loopback-ppsapi-provider-vc90"
+ BrowseInformation="1"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ntpd.lib"
+ OutputFile="$(OutDir)$(ProjectName).dll"
+ Version="0x0400"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="$(OutDir)"
+ GenerateManifest="false"
+ ModuleDefinitionFile="..\..\ppsapi\loopback\src\loopback-ppsapi.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ <ProjectReference
+ ReferencedProjectIdentifier="{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}"
+ CopyLocal="false"
+ CopyLocalDependencies="false"
+ CopyLocalSatelliteAssemblies="false"
+ RelativePathToProject=".\libntp\libntp.vcproj"
+ />
+ <ProjectReference
+ ReferencedProjectIdentifier="{CB61F8BF-9637-495C-9087-E8664B400CE0}"
+ CopyLocal="false"
+ CopyLocalDependencies="false"
+ CopyLocalSatelliteAssemblies="false"
+ RelativePathToProject=".\ntpd\ntpd.vcproj"
+ />
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\loopback-ppsapi.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\loopback-ppsapi.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\sys\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\timepps.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/ntp-keygen/ntp-keygen.vcproj b/ports/winnt/vs2008/ntp-keygen/ntp-keygen.vcproj
new file mode 100644
index 000000000000..6bf76fe93cf6
--- /dev/null
+++ b/ports/winnt/vs2008/ntp-keygen/ntp-keygen.vcproj
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntp-keygen"
+ ProjectGUID="{C88C1FBF-59D2-447F-BF57-0BCA8889028F}"
+ RootNamespace="ntp-keygen"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntp-keygen.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntp-keygen,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ SmallerTypeCheck="true"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntp-keygen.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntp-keygen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntp-keygen.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\ntp-keygen,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntp-keygen.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntp-keygen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\util\ntp-keygen-opts.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\util\ntp-keygen.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntp-keygen&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntp-keygen&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/ntp.sln b/ports/winnt/vs2008/ntp.sln
new file mode 100644
index 000000000000..e5556d9043f4
--- /dev/null
+++ b/ports/winnt/vs2008/ntp.sln
@@ -0,0 +1,90 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpd", "ntpd\ntpd.vcproj", "{CB61F8BF-9637-495C-9087-E8664B400CE0}"
+ ProjectSection(ProjectDependencies) = postProject
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A} = {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00} = {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "instsrv", "instsrv\instsrv.vcproj", "{C3534C4D-6DF1-498E-9904-4337878A1515}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libntp", "libntp\libntp.vcproj", "{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpdate", "ntpdate\ntpdate.vcproj", "{2789A62E-3F46-44F1-AAF0-816CD23C2911}"
+ ProjectSection(ProjectDependencies) = postProject
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00} = {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpdc", "ntpdc\ntpdc.vcproj", "{8011C820-B3D5-4034-86EA-FFC30AE6764B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00} = {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntp-keygen", "ntp-keygen\ntp-keygen.vcproj", "{C88C1FBF-59D2-447F-BF57-0BCA8889028F}"
+ ProjectSection(ProjectDependencies) = postProject
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00} = {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpq", "ntpq\ntpq.vcproj", "{6A92BF14-8931-48B1-A571-DEBE9F190616}"
+ ProjectSection(ProjectDependencies) = postProject
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00} = {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpd-keyword-gen", "ntpd-keyword-gen\ntpd-keyword-gen.vcproj", "{1B814CC1-EAD4-4A13-B29C-A67B23C9845A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00} = {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopback-ppsapi-provider", "loopback-pps\loopback-ppsapi-provider.vcproj", "{1ACE209D-D56E-450B-8711-B73E4ACFC38E}"
+ ProjectSection(ProjectDependencies) = postProject
+ {CB61F8BF-9637-495C-9087-E8664B400CE0} = {CB61F8BF-9637-495C-9087-E8664B400CE0}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug|Win32.Build.0 = Debug|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release|Win32.ActiveCfg = Release|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release|Win32.Build.0 = Release|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug|Win32.Build.0 = Debug|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release|Win32.ActiveCfg = Release|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release|Win32.Build.0 = Release|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug|Win32.ActiveCfg = Debug|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug|Win32.Build.0 = Debug|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release|Win32.ActiveCfg = Release|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release|Win32.Build.0 = Release|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug|Win32.Build.0 = Debug|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release|Win32.ActiveCfg = Release|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release|Win32.Build.0 = Release|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug|Win32.Build.0 = Debug|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release|Win32.ActiveCfg = Release|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release|Win32.Build.0 = Release|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug|Win32.Build.0 = Debug|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release|Win32.ActiveCfg = Release|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release|Win32.Build.0 = Release|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug|Win32.Build.0 = Debug|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release|Win32.ActiveCfg = Release|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release|Win32.Build.0 = Release|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug|Win32.Build.0 = Debug|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release|Win32.ActiveCfg = Release|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release|Win32.Build.0 = Release|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug|Win32.Build.0 = Debug|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release|Win32.ActiveCfg = Release|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/ports/winnt/vs2008/ntpd-keyword-gen/ntpd-keyword-gen.vcproj b/ports/winnt/vs2008/ntpd-keyword-gen/ntpd-keyword-gen.vcproj
new file mode 100644
index 000000000000..9a309d24ec84
--- /dev/null
+++ b/ports/winnt/vs2008/ntpd-keyword-gen/ntpd-keyword-gen.vcproj
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpd-keyword-gen"
+ ProjectGUID="{1B814CC1-EAD4-4A13-B29C-A67B23C9845A}"
+ RootNamespace="ntpdkeywordgen"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ SmallerTypeCheck="true"
+ RuntimeLibrary="1"
+ EnableFunctionLevelLinking="true"
+ ProgramDataBaseFileName="$(OutDir)keyword-gen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)keyword-gen.exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)keywordgen.pdb"
+ RandomizedBaseAddress="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\libopts"
+ PreprocessorDefinitions="_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ ProgramDataBaseFileName="$(OutDir)keyword-gen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)keyword-gen.exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)keywordgen.pdb"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpd\keyword-gen.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\lib_strbuf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_scanner.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_types.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/ntpd/gen-ntp_keyword.bat b/ports/winnt/vs2008/ntpd/gen-ntp_keyword.bat
new file mode 100644
index 000000000000..3013b8f15c67
--- /dev/null
+++ b/ports/winnt/vs2008/ntpd/gen-ntp_keyword.bat
@@ -0,0 +1,39 @@
+@echo off
+REM gen-ntp_keyword.bat
+REM helper to invoke keyword-gen and possibly update ntp_keyword.h
+REM Usage:
+REM gen-ntp_keyword dir_containing_keyword-gen.exe
+REM
+if "%1"=="" goto Usage
+if not exist %1\keyword-gen.exe goto ExeNotFound
+%1\keyword-gen.exe ..\..\..\..\ntpd\ntp_parser.h > new_keyword.h
+findstr /v diff_ignore_line new_keyword.h > new_keyword_cmp.h
+findstr /v diff_ignore_line ..\..\..\..\ntpd\ntp_keyword.h > ntp_keyword_cmp.h
+set meat_changed=0
+fc /L ntp_keyword_cmp.h new_keyword_cmp.h > NUL
+if errorlevel 1 set meat_changed=1
+del ntp_keyword_cmp.h new_keyword_cmp.h
+if "0"=="%meat_changed%" goto SkipUpdate
+xcopy /yf new_keyword.h ..\..\..\..\ntpd\ntp_keyword.h
+findstr diff_ignore_line new_keyword.h > ..\..\..\..\ntpd\keyword-gen-utd
+echo updated keyword-gen-utd and ntp_keyword.h
+goto SkipSkipMsg
+
+:skipUpdate
+echo ntp_keyword.h is unchanged
+
+:SkipSkipMsg
+set meat_changed=
+del new_keyword.h
+goto Exit
+
+:Usage
+echo Usage:
+echo gen-ntp_keyword dir_containing_keyword-gen.exe
+goto Exit
+
+:ExeNotFound
+echo keyword-gen.exe not found at %1\keyword-gen.exe
+goto Exit
+
+:Exit
diff --git a/ports/winnt/vs2008/ntpd/ntpd.vcproj b/ports/winnt/vs2008/ntpd/ntpd.vcproj
new file mode 100644
index 000000000000..3dfcfe4aa0f0
--- /dev/null
+++ b/ports/winnt/vs2008/ntpd/ntpd.vcproj
@@ -0,0 +1,1126 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="ntpd"
+ ProjectGUID="{CB61F8BF-9637-495C-9087-E8664B400CE0}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpd.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="false"
+ PrecompiledHeaderFile="$(IntDir)ntpd.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpd-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ OptimizeForWindows98="0"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpd.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ SmallerTypeCheck="true"
+ RuntimeLibrary="1"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpd.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpd-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ OptimizeForWindows98="0"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpd\cmd_args.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\keyword-gen.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\ntpd\nt_clockstuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_config.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_control.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_filegen.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ntpd\ntp_iocompletionport.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_leapsec.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_loopfilter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_monitor.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.y"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_peer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_proto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_refclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_request.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_restrict.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_scanner.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_signd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_timer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_util.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpd-opts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpsim.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ntpd\ntservice.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\include\ascii.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\assertions.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\binio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\boolean.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\clockstuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\declcond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\hopf_PCI_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ieee754io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netinet\in.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\arpa\inet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\int.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\interfaceiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\iosignal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\ipv6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\jupiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\log.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\mbg_gps166.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\netaddr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netdb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_assert.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_calendar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_cmdargs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_filegen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_if.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_iocompletionport.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_keyword.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_leapsec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_libopts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lists.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_malloc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_refclock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_scanner.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_tty.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_worker.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_workimpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpd-opts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntpsim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntservice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\offset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\sntp\libopts\autoopts\options.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\param.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\recvbuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_palisade.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\result.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\termios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\timepps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timespecops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timevalops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\wait.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\win32_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\win32os.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ >
+ <File
+ RelativePath="..\..\libntp\messages.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="..\libntp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="..\libntp"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\libntp\MSG00001.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_keyword.h"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h"
+ CommandLine=".\gen-ntp_keyword $(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\..\..\ntpd\ntp_parser.h"
+ Outputs="..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h"
+ CommandLine=".\gen-ntp_keyword $(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\..\..\ntpd\ntp_parser.h"
+ Outputs="..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ ShowIncludes="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="..\libntp\messages.mc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Reference Clock"
+ >
+ <File
+ RelativePath="..\..\ntpd\hopf_PCI_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_acts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_arbiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_arc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_as2201.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_atom.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_bancomm.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_chronolog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_chu.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_conf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_datum.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_dumbclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_fg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_gpsvme.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_heath.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_hopfpci.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_hopfser.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_hpgps.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_irig.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_jjy.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_jupiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_leitch.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_local.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_msfees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_mx4200.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_neoclock4x.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_nmea.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_oncore.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_palisade.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_parse.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_pcf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_pst.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_ripencc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_shm.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tpro.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_true.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tsyncpci.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tt560.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_ulink.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_wwv.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_wwvb.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_zyfer.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Parse Lib"
+ >
+ <File
+ RelativePath="..\..\..\..\libparse\binio.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_computime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_dcf7000.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_hopf6021.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_meinberg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_rawdcf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_rcc8000.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_schmid.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_trimtaip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_trimtsip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_varitext.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_wharton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\data_mbg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\gpstolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\ieee754io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\info_trimble.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\mfp_mul.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parse.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parse_conf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parsesolaris.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parsestreams.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\trim_info.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\scripts\mkver.bat"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpd&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\scripts\mkver.bat;..\..\include\config.h"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpd&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\scripts\mkver.bat;..\..\include\config.h"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/ntpdate/ntpdate.vcproj b/ports/winnt/vs2008/ntpdate/ntpdate.vcproj
new file mode 100644
index 000000000000..85a4bef373ca
--- /dev/null
+++ b/ports/winnt/vs2008/ntpdate/ntpdate.vcproj
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpdate"
+ ProjectGUID="{2789A62E-3F46-44F1-AAF0-816CD23C2911}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdate.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\ntpdate,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC)"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntpdate.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdate-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdate.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpdate,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC)"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpdate.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdate-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpdate\ntpdate.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdate\ntpdate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\syslog.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdate&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdate&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/ntpdc/ntpdc.vcproj b/ports/winnt/vs2008/ntpdc/ntpdc.vcproj
new file mode 100644
index 000000000000..5fd301ddf8b5
--- /dev/null
+++ b/ports/winnt/vs2008/ntpdc/ntpdc.vcproj
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpdc"
+ ProjectGUID="{8011C820-B3D5-4034-86EA-FFC30AE6764B}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdc.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpdc,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntpdc.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdc-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdc.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\ntpdc,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpdc.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdc-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc-opts.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc_ops.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\include\ntp_assert.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdc&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdc&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2008/ntpq/ntpq.vcproj b/ports/winnt/vs2008/ntpq/ntpq.vcproj
new file mode 100644
index 000000000000..440b38bae97a
--- /dev/null
+++ b/ports/winnt/vs2008/ntpq/ntpq.vcproj
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpq"
+ ProjectGUID="{6A92BF14-8931-48B1-A571-DEBE9F190616}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpq.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\ntpq,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpq.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpq-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpq.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpq,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntpq.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpq-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq-opts.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq-subs.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpq&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpq&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/instsrv/instsrv.vcproj b/ports/winnt/vs2013/instsrv/instsrv.vcproj
new file mode 100644
index 000000000000..e3324a66ec6b
--- /dev/null
+++ b/ports/winnt/vs2013/instsrv/instsrv.vcproj
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="instsrv"
+ ProjectGUID="{C3534C4D-6DF1-498E-9904-4337878A1515}"
+ RootNamespace="instsrv"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)Instsrv.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\..\..\include,..\..\include,..\..\instsrv"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)Instsrv.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)instsrv-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="oldnames.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)Instsrv.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..\..\include,..\..\include,..\..\instsrv"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;_WINDOWS;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)Instsrv.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)instsrv-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="oldnames.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\instsrv\instsrv.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/instsrv/instsrv.vcxproj b/ports/winnt/vs2013/instsrv/instsrv.vcxproj
new file mode 100644
index 000000000000..69360a4f4508
--- /dev/null
+++ b/ports/winnt/vs2013/instsrv/instsrv.vcxproj
@@ -0,0 +1,680 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C3534C4D-6DF1-498E-9904-4337878A1515}</ProjectGuid>
+ <RootNamespace>instsrv</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;_WINDOWS;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;_WINDOWS;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;_WINDOWS;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)Instsrv.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>..\..\..\..\include;..\..\include;..\..\instsrv;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;_WINDOWS;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)Instsrv.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)instsrv-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>oldnames.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\instsrv\instsrv.c" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/instsrv/instsrv.vcxproj.filters b/ports/winnt/vs2013/instsrv/instsrv.vcxproj.filters
new file mode 100644
index 000000000000..b2d70f6561b8
--- /dev/null
+++ b/ports/winnt/vs2013/instsrv/instsrv.vcxproj.filters
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{e8390c50-c913-4569-99e0-d09ea4a59555}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{bde2853f-cf7f-4658-89e7-21f3b87fc2e2}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{21cb96d9-ac72-4879-98fd-1e8ed146b4be}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\instsrv\instsrv.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/libntp/libntp.vcproj b/ports/winnt/vs2013/libntp/libntp.vcproj
new file mode 100644
index 000000000000..f9f57507d4d2
--- /dev/null
+++ b/ports/winnt/vs2013/libntp/libntp.vcproj
@@ -0,0 +1,936 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="libntp"
+ ProjectGUID="{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\libntp,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)libntp.pch"
+ AssemblerListingLocation="$IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(IntDir)"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="4"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\libntp,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ GeneratePreprocessedFile="0"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="false"
+ PrecompiledHeaderFile="$(IntDir)libntp.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(IntDir)"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLibrarianTool"
+ SuppressStartupBanner="true"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\libntp\a_md5encrypt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\adjtime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\assertions.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\atoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\atolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\atouint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\audio.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\authkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\authreadkeys.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\authusekey.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\backtrace-emptytbl.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\backtrace.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\buffer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\buftvtots.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\caljulian.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\caltontp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\calyearstart.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\clocktime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\clocktypes.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\condition.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\decodenetnum.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\dofptoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\dolfptoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\emalloc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\error.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\event.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\findconfig.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\getclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\getopt.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\hextoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\hextolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\humandate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\icom.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\inet_aton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\inet_ntop.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\inet_pton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\interfaceiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\iosignal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\lib.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\lib_strbuf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\sntp\libopts\libopts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\log.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\machines.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\md5.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\mktime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\modetoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\nls\msgcat.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\mstolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\msyslog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\net.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\netaddr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\netof.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\netscope.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_calendar.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_intres.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_libopts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_lineedit.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_random.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_rfc2553.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ntp_worker.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\numtoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\numtohost.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\octtoint.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\once.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\ondestroy.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\prettydate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\randfile.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\recvbuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\refnumtoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\setpriority.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\SetSystemTime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\snprintf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\sockaddr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\socket.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\socktoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\socktohost.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ssl_init.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\statestr.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\stdtime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\strdup.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\strerror.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\strl_obsd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\syslog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\syssignal.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\systime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\task.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\termios.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\thread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\time.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\timetoa.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\timevalops.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\uglydate.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\util_clockstuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\libntp\win32_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\win32os.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\work_fork.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\work_thread.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libntp\ymd2yd.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\sntp\libopts\ag-char-map.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\binio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\buffer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\clockstuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\condition.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\declcond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\event.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\gaa_compat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\global.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\hash.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ieee754io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netinet\in.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\arpa\inet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\interfaceiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\intreswork.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\ioctl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\iosignal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\ipv6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\lib_strbuf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\log.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\md5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\isc\mem.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\mutex.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\isc\netaddr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netdb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\isc\netscope.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_assert.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_calendar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_if.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_intres.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_iocompletionport.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_libopts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lists.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_malloc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_md5.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_refclock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\ondestroy.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\recvbuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\resource.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\signal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\stat.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\stdtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\task.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\termios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\thread.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timespecops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timetoa.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timevalops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\win32_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\win32os.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ >
+ <File
+ RelativePath="..\..\libntp\messages.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ >
+ <File
+ RelativePath="..\..\libntp\messages.mc"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Message Compiler"
+ CommandLine="mc -h $(InputDir) -r $(InputDir) -e h $(InputPath)&#x0D;&#x0A;"
+ Outputs="$(InputDir)$(InputName).rc;$(InputDir)$(InputName).h;$(InputDir)msg00001.bin"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="Message Compiler"
+ CommandLine="mc -h $(InputDir) -r $(InputDir) -e h $(InputPath)&#x0D;&#x0A;"
+ Outputs="$(InputDir)$(InputName).rc;$(InputDir)$(InputName).h;$(InputDir)msg00001.bin"
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/libntp/libntp.vcxproj b/ports/winnt/vs2013/libntp/libntp.vcxproj
new file mode 100644
index 000000000000..2e20c71b4ce9
--- /dev/null
+++ b/ports/winnt/vs2013/libntp/libntp.vcxproj
@@ -0,0 +1,741 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessToFile>false</PreprocessToFile>
+ <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessToFile>false</PreprocessToFile>
+ <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessToFile>false</PreprocessToFile>
+ <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\libntp;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_LIB;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <PreprocessToFile>false</PreprocessToFile>
+ <PreprocessSuppressLineNumbers>false</PreprocessSuppressLineNumbers>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)libntp.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(IntDir)</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>NoListing</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Lib>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ </Lib>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\libntp\a_md5encrypt.c" />
+ <ClCompile Include="..\..\..\..\libntp\adjtime.c" />
+ <ClCompile Include="..\..\..\..\libntp\vint64ops.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\assertions.c" />
+ <ClCompile Include="..\..\..\..\libntp\atoint.c" />
+ <ClCompile Include="..\..\..\..\libntp\atolfp.c" />
+ <ClCompile Include="..\..\..\..\libntp\atouint.c" />
+ <ClCompile Include="..\..\..\..\libntp\audio.c" />
+ <ClCompile Include="..\..\..\..\libntp\authkeys.c" />
+ <ClCompile Include="..\..\..\..\libntp\authreadkeys.c" />
+ <ClCompile Include="..\..\..\..\libntp\authusekey.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\backtrace-emptytbl.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\backtrace.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\buffer.c" />
+ <ClCompile Include="..\..\..\..\libntp\buftvtots.c" />
+ <ClCompile Include="..\..\..\..\libntp\caljulian.c" />
+ <ClCompile Include="..\..\..\..\libntp\caltontp.c" />
+ <ClCompile Include="..\..\..\..\libntp\calyearstart.c" />
+ <ClCompile Include="..\..\..\..\libntp\clocktime.c" />
+ <ClCompile Include="..\..\..\..\libntp\clocktypes.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\sha1.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\condition.c" />
+ <ClCompile Include="..\..\..\..\libntp\decodenetnum.c" />
+ <ClCompile Include="..\..\..\..\libntp\dofptoa.c" />
+ <ClCompile Include="..\..\..\..\libntp\dolfptoa.c" />
+ <ClCompile Include="..\..\..\..\libntp\emalloc.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\error.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\event.c" />
+ <ClCompile Include="..\..\..\..\libntp\findconfig.c" />
+ <ClCompile Include="..\..\libntp\getclock.c" />
+ <ClCompile Include="..\..\..\..\libntp\getopt.c" />
+ <ClCompile Include="..\..\..\..\libntp\hextoint.c" />
+ <ClCompile Include="..\..\..\..\libntp\hextolfp.c" />
+ <ClCompile Include="..\..\..\..\libntp\humandate.c" />
+ <ClCompile Include="..\..\..\..\libntp\icom.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\inet_aton.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\inet_ntop.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\inet_pton.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\interfaceiter.c" />
+ <ClCompile Include="..\..\..\..\libntp\iosignal.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\lib.c" />
+ <ClCompile Include="..\..\..\..\libntp\lib_strbuf.c" />
+ <ClCompile Include="..\..\..\..\sntp\libopts\libopts.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\log.c" />
+ <ClCompile Include="..\..\..\..\libntp\machines.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\md5.c" />
+ <ClCompile Include="..\..\..\..\libntp\mktime.c" />
+ <ClCompile Include="..\..\..\..\libntp\modetoa.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\nls\msgcat.c" />
+ <ClCompile Include="..\..\..\..\libntp\mstolfp.c" />
+ <ClCompile Include="..\..\..\..\libntp\msyslog.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\net.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\netaddr.c" />
+ <ClCompile Include="..\..\..\..\libntp\netof.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\netscope.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_calendar.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_crypto_rnd.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_intres.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_libopts.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_lineedit.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_random.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_rfc2553.c" />
+ <ClCompile Include="..\..\..\..\libntp\ntp_worker.c" />
+ <ClCompile Include="..\..\..\..\libntp\numtoa.c" />
+ <ClCompile Include="..\..\..\..\libntp\numtohost.c" />
+ <ClCompile Include="..\..\..\..\libntp\octtoint.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\once.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\ondestroy.c" />
+ <ClCompile Include="..\..\..\..\libntp\prettydate.c" />
+ <ClCompile Include="..\..\libntp\randfile.c" />
+ <ClCompile Include="..\..\..\..\libntp\recvbuff.c" />
+ <ClCompile Include="..\..\..\..\libntp\refnumtoa.c" />
+ <ClCompile Include="..\..\libntp\setpriority.c" />
+ <ClCompile Include="..\..\libntp\SetSystemTime.c" />
+ <ClCompile Include="..\..\..\..\libntp\snprintf.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\sockaddr.c" />
+ <ClCompile Include="..\..\..\..\libntp\socket.c" />
+ <ClCompile Include="..\..\..\..\libntp\socktoa.c" />
+ <ClCompile Include="..\..\..\..\libntp\socktohost.c" />
+ <ClCompile Include="..\..\..\..\libntp\ssl_init.c" />
+ <ClCompile Include="..\..\..\..\libntp\statestr.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\stdtime.c" />
+ <ClCompile Include="..\..\..\..\libntp\strdup.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\strerror.c" />
+ <ClCompile Include="..\..\..\..\libntp\strl_obsd.c" />
+ <ClCompile Include="..\..\libntp\syslog.c" />
+ <ClCompile Include="..\..\..\..\libntp\syssignal.c" />
+ <ClCompile Include="..\..\..\..\libntp\systime.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\task.c" />
+ <ClCompile Include="..\..\libntp\termios.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\thread.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\time.c" />
+ <ClCompile Include="..\..\..\..\libntp\timetoa.c" />
+ <ClCompile Include="..\..\..\..\libntp\timevalops.c" />
+ <ClCompile Include="..\..\..\..\libntp\uglydate.c" />
+ <ClCompile Include="..\..\libntp\util_clockstuff.c" />
+ <ClCompile Include="..\..\libntp\win32_io.c" />
+ <ClCompile Include="..\..\..\..\lib\isc\win32\win32os.c" />
+ <ClCompile Include="..\..\..\..\libntp\work_fork.c" />
+ <ClCompile Include="..\..\..\..\libntp\work_thread.c" />
+ <ClCompile Include="..\..\..\..\libntp\ymd2yd.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\vint64ops.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\sha1.h" />
+ <ClInclude Include="..\..\..\..\sntp\libopts\ag-char-map.h" />
+ <ClInclude Include="..\..\..\..\include\binio.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\buffer.h" />
+ <ClInclude Include="..\..\include\clockstuff.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\condition.h" />
+ <ClInclude Include="..\..\include\config.h" />
+ <ClInclude Include="..\..\..\..\include\declcond.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\event.h" />
+ <ClInclude Include="..\..\include\gaa_compat.h" />
+ <ClInclude Include="..\..\..\..\include\global.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\hash.h" />
+ <ClInclude Include="..\..\..\..\include\ieee754io.h" />
+ <ClInclude Include="..\..\include\netinet\in.h" />
+ <ClInclude Include="..\..\include\arpa\inet.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\interfaceiter.h" />
+ <ClInclude Include="..\..\..\..\include\intreswork.h" />
+ <ClInclude Include="..\..\include\sys\ioctl.h" />
+ <ClInclude Include="..\..\..\..\include\iosignal.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\ipv6.h" />
+ <ClInclude Include="..\..\..\..\include\l_stdlib.h" />
+ <ClInclude Include="..\..\..\..\include\lib_strbuf.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\log.h" />
+ <ClInclude Include="..\..\..\..\include\md5.h" />
+ <ClInclude Include="..\..\..\..\include\isc\mem.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\mutex.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\net.h" />
+ <ClInclude Include="..\..\..\..\include\isc\netaddr.h" />
+ <ClInclude Include="..\..\include\netdb.h" />
+ <ClInclude Include="..\..\..\..\include\isc\netscope.h" />
+ <ClInclude Include="..\..\..\..\include\ntp.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_assert.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_calendar.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_control.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_debug.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_fp.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_if.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_intres.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_io.h" />
+ <ClInclude Include="..\..\include\ntp_iocompletionport.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_libopts.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_lineedit.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_lists.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_malloc.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_md5.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_net.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_proto.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_random.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_refclock.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_rfc2553.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_select.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_string.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h" />
+ <ClInclude Include="..\..\include\ntp_timer.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_types.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_unixtime.h" />
+ <ClInclude Include="..\..\..\..\include\ntpd.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\ondestroy.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\platform.h" />
+ <ClInclude Include="..\..\..\..\include\recvbuff.h" />
+ <ClInclude Include="..\..\include\sys\resource.h" />
+ <ClInclude Include="..\..\include\sys\signal.h" />
+ <ClInclude Include="..\..\include\sys\socket.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\stat.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\stdtime.h" />
+ <ClInclude Include="..\..\include\syslog.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\task.h" />
+ <ClInclude Include="..\..\include\termios.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\thread.h" />
+ <ClInclude Include="..\..\include\sys\time.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\time.h" />
+ <ClInclude Include="..\..\..\..\include\timespecops.h" />
+ <ClInclude Include="..\..\..\..\include\timetoa.h" />
+ <ClInclude Include="..\..\..\..\include\timevalops.h" />
+ <ClInclude Include="..\..\include\win32_io.h" />
+ <ClInclude Include="..\..\include\isc\win32os.h" />
+ <ClInclude Include="..\..\libntp\messages.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\libntp\messages.mc">
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Message Compiler</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">Message Compiler</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Message Compiler</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">Message Compiler</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Message Compiler</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">Message Compiler</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Message Compiler</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">Message Compiler</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">mc -h %(RootDir)%(Directory) -r %(RootDir)%(Directory) -e h %(FullPath)
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">%(RootDir)%(Directory)%(Filename).rc;%(RootDir)%(Directory)%(Filename).h;%(RootDir)%(Directory)msg00001.bin;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/libntp/libntp.vcxproj.filters b/ports/winnt/vs2013/libntp/libntp.vcxproj.filters
new file mode 100644
index 000000000000..4eefad71149d
--- /dev/null
+++ b/ports/winnt/vs2013/libntp/libntp.vcxproj.filters
@@ -0,0 +1,568 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{df2922e3-313f-4661-9019-a88cb5be1bee}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{70e10793-da6a-4bfe-b35a-c00a64ac61bc}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Generated Files">
+ <UniqueIdentifier>{6452d330-e63a-473c-bd9f-1874d4061592}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{fc799aa8-add1-4e83-8dff-de647477bf79}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\libntp\a_md5encrypt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\adjtime.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\assertions.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\atoint.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\atolfp.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\atouint.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\audio.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\authkeys.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\authreadkeys.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\authusekey.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\backtrace-emptytbl.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\backtrace.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\buffer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\buftvtots.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\caljulian.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\caltontp.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\calyearstart.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\clocktime.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\clocktypes.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\condition.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\decodenetnum.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\dofptoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\dolfptoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\emalloc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\error.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\event.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\findconfig.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\getclock.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\getopt.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\hextoint.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\hextolfp.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\humandate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\icom.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\inet_aton.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\inet_ntop.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\inet_pton.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\interfaceiter.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\iosignal.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\lib.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\lib_strbuf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\sntp\libopts\libopts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\log.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\machines.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\md5.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\mktime.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\modetoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\nls\msgcat.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\mstolfp.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\msyslog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\net.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\netaddr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\netof.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\netscope.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_calendar.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_intres.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_libopts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_lineedit.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_random.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_rfc2553.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ntp_worker.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\numtoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\numtohost.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\octtoint.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\once.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\ondestroy.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\prettydate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\randfile.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\recvbuff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\refnumtoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\setpriority.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\SetSystemTime.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\snprintf.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\sockaddr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\socket.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\socktoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\socktohost.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ssl_init.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\statestr.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\stdtime.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\strdup.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\strerror.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\strl_obsd.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\syslog.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\syssignal.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\systime.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\task.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\termios.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\thread.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\time.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\timetoa.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\timevalops.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\uglydate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\util_clockstuff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\libntp\win32_io.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\win32\win32os.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\work_fork.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\work_thread.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\ymd2yd.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\lib\isc\sha1.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libntp\vint64ops.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\sntp\libopts\ag-char-map.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\binio.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\buffer.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\clockstuff.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\condition.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\declcond.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\event.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\gaa_compat.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\global.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\hash.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ieee754io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\netinet\in.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\arpa\inet.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\interfaceiter.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\intreswork.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\ioctl.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\iosignal.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\ipv6.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\l_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\lib_strbuf.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\log.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\md5.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\isc\mem.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\mutex.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\isc\netaddr.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\netdb.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\isc\netscope.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_assert.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_calendar.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_control.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_debug.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_fp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_if.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_intres.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ntp_iocompletionport.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_libopts.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_lineedit.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_lists.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_malloc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_md5.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_proto.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_random.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_refclock.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_rfc2553.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_select.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_string.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ntp_timer.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_types.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_unixtime.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntpd.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\ondestroy.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\platform.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\recvbuff.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\resource.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\signal.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\socket.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\stat.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\stdtime.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\task.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\termios.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\thread.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\time.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\time.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\timespecops.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\timetoa.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\timevalops.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\win32_io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\win32os.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\libntp\messages.h">
+ <Filter>Generated Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\sha1.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\vint64ops.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\libntp\messages.mc">
+ <Filter>Resource Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcproj b/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcproj
new file mode 100644
index 000000000000..e306108e6f9d
--- /dev/null
+++ b/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcproj
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="loopback-ppsapi-provider"
+ ProjectGUID="{1ACE209D-D56E-450B-8711-B73E4ACFC38E}"
+ RootNamespace="loopbackerialppsapiprovider"
+ Keyword="Win32Proj"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="2"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include"
+ PreprocessorDefinitions="SYS_WINNT"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderThrough="serialpps-ppsapi-provider.h"
+ AssemblerListingLocation="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)loopback-ppsapi-provider-vc90"
+ BrowseInformation="1"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ntpd.lib"
+ OutputFile="$(OutDir)$(ProjectName).dll"
+ Version="0x0400"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="$(OutDir)"
+ GenerateManifest="false"
+ ModuleDefinitionFile="..\..\ppsapi\loopback\src\loopback-ppsapi.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="2"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include"
+ PreprocessorDefinitions="SYS_WINNT"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderThrough="serialpps-ppsapi-provider.h"
+ AssemblerListingLocation="$(IntDir)\"
+ ProgramDataBaseFileName="$(OutDir)loopback-ppsapi-provider-vc90"
+ BrowseInformation="1"
+ WarningLevel="3"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ntpd.lib"
+ OutputFile="$(OutDir)$(ProjectName).dll"
+ Version="0x0400"
+ LinkIncremental="1"
+ AdditionalLibraryDirectories="$(OutDir)"
+ GenerateManifest="false"
+ ModuleDefinitionFile="..\..\ppsapi\loopback\src\loopback-ppsapi.def"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="2"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ <ProjectReference
+ ReferencedProjectIdentifier="{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}"
+ CopyLocal="false"
+ CopyLocalDependencies="false"
+ CopyLocalSatelliteAssemblies="false"
+ RelativePathToProject=".\libntp\libntp.vcproj"
+ />
+ <ProjectReference
+ ReferencedProjectIdentifier="{CB61F8BF-9637-495C-9087-E8664B400CE0}"
+ CopyLocal="false"
+ CopyLocalDependencies="false"
+ CopyLocalSatelliteAssemblies="false"
+ RelativePathToProject=".\ntpd\ntpd.vcproj"
+ />
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\loopback-ppsapi.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\loopback-ppsapi.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\sys\time.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ppsapi\loopback\src\timepps.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ <File
+ RelativePath=".\ReadMe.txt"
+ >
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj b/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj
new file mode 100644
index 000000000000..a5ba8aa9ced3
--- /dev/null
+++ b/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj
@@ -0,0 +1,583 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{1ACE209D-D56E-450B-8711-B73E4ACFC38E}</ProjectGuid>
+ <RootNamespace>loopbackerialppsapiprovider</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>SYS_WINNT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <PrecompiledHeaderFile>serialpps-ppsapi-provider.h</PrecompiledHeaderFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ProgramDataBaseFileName>$(OutDir)loopback-ppsapi-provider-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ntpd.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).dll</OutputFile>
+ <Version>
+ </Version>
+ <AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>..\..\ppsapi\loopback\src\loopback-ppsapi.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Windows</SubSystem>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <Private>false</Private>
+ <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+ <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\ntpd\ntpd.vcxproj">
+ <Project>{cb61f8bf-9637-495c-9087-e8664b400ce0}</Project>
+ <Private>false</Private>
+ <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
+ <ReferenceOutputAssembly>true</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\ppsapi\loopback\src\loopback-ppsapi.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\ppsapi\loopback\src\loopback-ppsapi.h" />
+ <ClInclude Include="..\..\ppsapi\loopback\src\sys\time.h" />
+ <ClInclude Include="..\..\ppsapi\loopback\src\timepps.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <Text Include="ReadMe.txt" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj.filters b/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj.filters
new file mode 100644
index 000000000000..135f4eb7e004
--- /dev/null
+++ b/ports/winnt/vs2013/loopback-pps/loopback-ppsapi-provider.vcxproj.filters
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\ppsapi\loopback\src\loopback-ppsapi.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\ppsapi\loopback\src\loopback-ppsapi.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\ppsapi\loopback\src\sys\time.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\ppsapi\loopback\src\timepps.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <Text Include="ReadMe.txt" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcproj b/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcproj
new file mode 100644
index 000000000000..6bf76fe93cf6
--- /dev/null
+++ b/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcproj
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntp-keygen"
+ ProjectGUID="{C88C1FBF-59D2-447F-BF57-0BCA8889028F}"
+ RootNamespace="ntp-keygen"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntp-keygen.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntp-keygen,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ SmallerTypeCheck="true"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntp-keygen.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntp-keygen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntp-keygen.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\ntp-keygen,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntp-keygen.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntp-keygen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\util\ntp-keygen-opts.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\util\ntp-keygen.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntp-keygen&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntp-keygen&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj b/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj
new file mode 100644
index 000000000000..21a2675c34a2
--- /dev/null
+++ b/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj
@@ -0,0 +1,752 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{C88C1FBF-59D2-447F-BF57-0BCA8889028F}</ProjectGuid>
+ <RootNamespace>ntp-keygen</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntp-keygen.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntp-keygen;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntp-keygen.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntp-keygen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\util\ntp-keygen-opts.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">Level3</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\util\ntp-keygen.c" />
+ <ClCompile Include="version.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\config.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntp-keygen
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj.filters b/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj.filters
new file mode 100644
index 000000000000..4fba55170c74
--- /dev/null
+++ b/ports/winnt/vs2013/ntp-keygen/ntp-keygen.vcxproj.filters
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{f11f7756-c1fa-4353-8941-89cc81be5e02}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{e01d2f25-84af-473d-bb5a-57991927813b}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{8fcd5bab-1f17-4bd9-93a5-33c7eac5b745}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\util\ntp-keygen-opts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\util\ntp-keygen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="version.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntp.sln b/ports/winnt/vs2013/ntp.sln
new file mode 100644
index 000000000000..e28828f370a4
--- /dev/null
+++ b/ports/winnt/vs2013/ntp.sln
@@ -0,0 +1,166 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30219.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpd", "ntpd\ntpd.vcxproj", "{CB61F8BF-9637-495C-9087-E8664B400CE0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "instsrv", "instsrv\instsrv.vcxproj", "{C3534C4D-6DF1-498E-9904-4337878A1515}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libntp", "libntp\libntp.vcxproj", "{400FBFCB-462E-40D0-B06B-3B74E3FFFD00}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpdate", "ntpdate\ntpdate.vcxproj", "{2789A62E-3F46-44F1-AAF0-816CD23C2911}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpdc", "ntpdc\ntpdc.vcxproj", "{8011C820-B3D5-4034-86EA-FFC30AE6764B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntp-keygen", "ntp-keygen\ntp-keygen.vcxproj", "{C88C1FBF-59D2-447F-BF57-0BCA8889028F}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpq", "ntpq\ntpq.vcxproj", "{6A92BF14-8931-48B1-A571-DEBE9F190616}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ntpd-keyword-gen", "ntpd-keyword-gen\ntpd-keyword-gen.vcxproj", "{1B814CC1-EAD4-4A13-B29C-A67B23C9845A}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopback-ppsapi-provider", "loopback-pps\loopback-ppsapi-provider.vcxproj", "{1ACE209D-D56E-450B-8711-B73E4ACFC38E}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug XP|Win32 = Debug XP|Win32
+ Debug XP|x64 = Debug XP|x64
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release XP|Win32 = Release XP|Win32
+ Release XP|x64 = Release XP|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug|Win32.Build.0 = Debug|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug|x64.ActiveCfg = Debug|x64
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Debug|x64.Build.0 = Debug|x64
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release XP|Win32.Build.0 = Release XP|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release XP|x64.ActiveCfg = Release XP|x64
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release|Win32.ActiveCfg = Release|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release|Win32.Build.0 = Release|Win32
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release|x64.ActiveCfg = Release|x64
+ {CB61F8BF-9637-495C-9087-E8664B400CE0}.Release|x64.Build.0 = Release|x64
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug|Win32.Build.0 = Debug|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug|x64.ActiveCfg = Debug|x64
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Debug|x64.Build.0 = Debug|x64
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release XP|Win32.Build.0 = Release XP|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release XP|x64.ActiveCfg = Release XP|x64
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release|Win32.ActiveCfg = Release|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release|Win32.Build.0 = Release|Win32
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release|x64.ActiveCfg = Release|x64
+ {C3534C4D-6DF1-498E-9904-4337878A1515}.Release|x64.Build.0 = Release|x64
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug|Win32.ActiveCfg = Debug|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug|Win32.Build.0 = Debug|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug|x64.ActiveCfg = Debug|x64
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Debug|x64.Build.0 = Debug|x64
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release XP|Win32.Build.0 = Release XP|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release XP|x64.ActiveCfg = Release XP|x64
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release|Win32.ActiveCfg = Release|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release|Win32.Build.0 = Release|Win32
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release|x64.ActiveCfg = Release|x64
+ {400FBFCB-462E-40D0-B06B-3B74E3FFFD00}.Release|x64.Build.0 = Release|x64
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug|Win32.ActiveCfg = Debug|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug|Win32.Build.0 = Debug|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug|x64.ActiveCfg = Debug|x64
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Debug|x64.Build.0 = Debug|x64
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release XP|Win32.Build.0 = Release XP|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release XP|x64.ActiveCfg = Release XP|x64
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release|Win32.ActiveCfg = Release|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release|Win32.Build.0 = Release|Win32
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release|x64.ActiveCfg = Release|x64
+ {2789A62E-3F46-44F1-AAF0-816CD23C2911}.Release|x64.Build.0 = Release|x64
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug|Win32.Build.0 = Debug|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug|x64.ActiveCfg = Debug|x64
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Debug|x64.Build.0 = Debug|x64
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release XP|Win32.Build.0 = Release XP|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release XP|x64.ActiveCfg = Release XP|x64
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release|Win32.ActiveCfg = Release|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release|Win32.Build.0 = Release|Win32
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release|x64.ActiveCfg = Release|x64
+ {8011C820-B3D5-4034-86EA-FFC30AE6764B}.Release|x64.Build.0 = Release|x64
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug|Win32.ActiveCfg = Debug|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug|Win32.Build.0 = Debug|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug|x64.ActiveCfg = Debug|x64
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Debug|x64.Build.0 = Debug|x64
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release XP|Win32.Build.0 = Release XP|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release XP|x64.ActiveCfg = Release XP|x64
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release|Win32.ActiveCfg = Release|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release|Win32.Build.0 = Release|Win32
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release|x64.ActiveCfg = Release|x64
+ {C88C1FBF-59D2-447F-BF57-0BCA8889028F}.Release|x64.Build.0 = Release|x64
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug|Win32.ActiveCfg = Debug|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug|Win32.Build.0 = Debug|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug|x64.ActiveCfg = Debug|x64
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Debug|x64.Build.0 = Debug|x64
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release XP|Win32.Build.0 = Release XP|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release XP|x64.ActiveCfg = Release XP|x64
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release|Win32.ActiveCfg = Release|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release|Win32.Build.0 = Release|Win32
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release|x64.ActiveCfg = Release|x64
+ {6A92BF14-8931-48B1-A571-DEBE9F190616}.Release|x64.Build.0 = Release|x64
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug|Win32.Build.0 = Debug|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug|x64.ActiveCfg = Debug|x64
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Debug|x64.Build.0 = Debug|x64
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release XP|Win32.Build.0 = Release XP|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release XP|x64.ActiveCfg = Release XP|x64
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release|Win32.ActiveCfg = Release|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release|Win32.Build.0 = Release|Win32
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release|x64.ActiveCfg = Release|x64
+ {1B814CC1-EAD4-4A13-B29C-A67B23C9845A}.Release|x64.Build.0 = Release|x64
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug XP|Win32.ActiveCfg = Debug XP|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug XP|Win32.Build.0 = Debug XP|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug XP|x64.ActiveCfg = Debug XP|x64
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug|Win32.ActiveCfg = Debug|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug|Win32.Build.0 = Debug|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug|x64.ActiveCfg = Debug|x64
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Debug|x64.Build.0 = Debug|x64
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release XP|Win32.ActiveCfg = Release XP|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release XP|Win32.Build.0 = Release XP|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release XP|x64.ActiveCfg = Release XP|x64
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release|Win32.ActiveCfg = Release|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release|Win32.Build.0 = Release|Win32
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release|x64.ActiveCfg = Release|x64
+ {1ACE209D-D56E-450B-8711-B73E4ACFC38E}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcproj b/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcproj
new file mode 100644
index 000000000000..9a309d24ec84
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcproj
@@ -0,0 +1,273 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpd-keyword-gen"
+ ProjectGUID="{1B814CC1-EAD4-4A13-B29C-A67B23C9845A}"
+ RootNamespace="ntpdkeywordgen"
+ TargetFrameworkVersion="196613"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ SmallerTypeCheck="true"
+ RuntimeLibrary="1"
+ EnableFunctionLevelLinking="true"
+ ProgramDataBaseFileName="$(OutDir)keyword-gen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)keyword-gen.exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)keywordgen.pdb"
+ RandomizedBaseAddress="1"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ CharacterSet="2"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ EnableIntrinsicFunctions="true"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\libopts"
+ PreprocessorDefinitions="_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ ProgramDataBaseFileName="$(OutDir)keyword-gen-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ DebugInformationFormat="3"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)keyword-gen.exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)keywordgen.pdb"
+ OptimizeReferences="2"
+ EnableCOMDATFolding="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+ UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpd\keyword-gen.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl;inc;xsd"
+ UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+ >
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\lib_strbuf.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_scanner.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_types.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+ UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj b/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj
new file mode 100644
index 000000000000..979ceb1ed94b
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj
@@ -0,0 +1,531 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{1B814CC1-EAD4-4A13-B29C-A67B23C9845A}</ProjectGuid>
+ <RootNamespace>ntpdkeywordgen</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <LinkIncremental>false</LinkIncremental>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(OutDir)keyword-gen-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)keyword-gen.exe</OutputFile>
+ <Version>
+ </Version>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)keywordgen.pdb</ProgramDatabaseFile>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpd\keyword-gen.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\config.h" />
+ <ClInclude Include="..\..\..\..\include\l_stdlib.h" />
+ <ClInclude Include="..\..\..\..\include\lib_strbuf.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\net.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_config.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_net.h" />
+ <ClInclude Include="..\..\..\..\ntpd\ntp_parser.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_proto.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_rfc2553.h" />
+ <ClInclude Include="..\..\..\..\ntpd\ntp_scanner.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_string.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_types.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters b/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters
new file mode 100644
index 000000000000..44b51670ca06
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd-keyword-gen/ntpd-keyword-gen.vcxproj.filters
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpd\keyword-gen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\l_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\lib_strbuf.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\ntp_parser.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_proto.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_rfc2553.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\ntp_scanner.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_string.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_types.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpd/gen-ntp_keyword.bat b/ports/winnt/vs2013/ntpd/gen-ntp_keyword.bat
new file mode 100644
index 000000000000..3013b8f15c67
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd/gen-ntp_keyword.bat
@@ -0,0 +1,39 @@
+@echo off
+REM gen-ntp_keyword.bat
+REM helper to invoke keyword-gen and possibly update ntp_keyword.h
+REM Usage:
+REM gen-ntp_keyword dir_containing_keyword-gen.exe
+REM
+if "%1"=="" goto Usage
+if not exist %1\keyword-gen.exe goto ExeNotFound
+%1\keyword-gen.exe ..\..\..\..\ntpd\ntp_parser.h > new_keyword.h
+findstr /v diff_ignore_line new_keyword.h > new_keyword_cmp.h
+findstr /v diff_ignore_line ..\..\..\..\ntpd\ntp_keyword.h > ntp_keyword_cmp.h
+set meat_changed=0
+fc /L ntp_keyword_cmp.h new_keyword_cmp.h > NUL
+if errorlevel 1 set meat_changed=1
+del ntp_keyword_cmp.h new_keyword_cmp.h
+if "0"=="%meat_changed%" goto SkipUpdate
+xcopy /yf new_keyword.h ..\..\..\..\ntpd\ntp_keyword.h
+findstr diff_ignore_line new_keyword.h > ..\..\..\..\ntpd\keyword-gen-utd
+echo updated keyword-gen-utd and ntp_keyword.h
+goto SkipSkipMsg
+
+:skipUpdate
+echo ntp_keyword.h is unchanged
+
+:SkipSkipMsg
+set meat_changed=
+del new_keyword.h
+goto Exit
+
+:Usage
+echo Usage:
+echo gen-ntp_keyword dir_containing_keyword-gen.exe
+goto Exit
+
+:ExeNotFound
+echo keyword-gen.exe not found at %1\keyword-gen.exe
+goto Exit
+
+:Exit
diff --git a/ports/winnt/vs2013/ntpd/ntpd.vcproj b/ports/winnt/vs2013/ntpd/ntpd.vcproj
new file mode 100644
index 000000000000..3dfcfe4aa0f0
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd/ntpd.vcproj
@@ -0,0 +1,1126 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9,00"
+ Name="ntpd"
+ ProjectGUID="{CB61F8BF-9637-495C-9087-E8664B400CE0}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpd.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="false"
+ PrecompiledHeaderFile="$(IntDir)ntpd.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpd-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ OptimizeForWindows98="0"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpd.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ InlineFunctionExpansion="2"
+ EnableIntrinsicFunctions="true"
+ FavorSizeOrSpeed="1"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\ntpd,..\..\..\..\ntpd,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ SmallerTypeCheck="true"
+ RuntimeLibrary="1"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpd.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpd-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib winmm.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ OptimizeForWindows98="0"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="2"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpd\cmd_args.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\keyword-gen.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\ntpd\nt_clockstuff.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_config.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_control.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_crypto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_filegen.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ntpd\ntp_iocompletionport.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_leapsec.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_loopfilter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_monitor.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.y"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_peer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_proto.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_refclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_request.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_restrict.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_scanner.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_signd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_timer.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_util.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpd-opts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpd.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpsim.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\ntpd\ntservice.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\include\ascii.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\assertions.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\binio.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\boolean.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\clockstuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\declcond.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\hopf_PCI_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ieee754io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netinet\in.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\arpa\inet.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\int.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\interfaceiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\iosignal.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\win32\include\isc\ipv6.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\jupiter.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\l_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\libntp\log.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\mbg_gps166.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\netaddr.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\netdb.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_assert.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_calendar.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_cmdargs.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_control.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_debug.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_filegen.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_if.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_iocompletionport.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_keyword.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_leapsec.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_libopts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lists.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_malloc.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_parser.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_proto.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_random.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_refclock.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_request.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_rfc2553.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_scanner.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntp_timer.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_tty.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_types.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_worker.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_workimpl.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntpd-opts.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntpd.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntpsim.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\ntservice.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\offset.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\sntp\libopts\autoopts\options.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\param.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\platform.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\recvbuff.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_palisade.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\lib\isc\include\isc\result.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\socket.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\termios.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\timepps.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timespecops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\timevalops.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\sys\wait.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\win32_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\win32os.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Generated Files"
+ >
+ <File
+ RelativePath="..\..\libntp\messages.rc"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="..\libntp"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions=""
+ AdditionalIncludeDirectories="..\libntp"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\libntp\MSG00001.bin"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\ntp_keyword.h"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h"
+ CommandLine=".\gen-ntp_keyword $(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\..\..\ntpd\ntp_parser.h"
+ Outputs="..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ Description="invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h"
+ CommandLine=".\gen-ntp_keyword $(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\..\..\ntpd\ntp_parser.h"
+ Outputs="..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ ShowIncludes="true"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ <File
+ RelativePath="..\libntp\messages.mc"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Reference Clock"
+ >
+ <File
+ RelativePath="..\..\ntpd\hopf_PCI_io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_acts.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_arbiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_arc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_as2201.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_atom.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_bancomm.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_chronolog.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_chu.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_conf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_datum.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_dumbclock.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_fg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_gpsvme.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_heath.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_hopfpci.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_hopfser.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_hpgps.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_irig.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_jjy.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_jupiter.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_leitch.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_local.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_msfees.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_mx4200.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_neoclock4x.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_nmea.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_oncore.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_palisade.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_parse.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_pcf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_pst.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_ripencc.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_shm.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tpro.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_true.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tsyncpci.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_tt560.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_ulink.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_wwv.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_wwvb.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpd\refclock_zyfer.c"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Parse Lib"
+ >
+ <File
+ RelativePath="..\..\..\..\libparse\binio.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_computime.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_dcf7000.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_hopf6021.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_meinberg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_rawdcf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_rcc8000.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_schmid.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_trimtaip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_trimtsip.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_varitext.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\clk_wharton.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\data_mbg.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\gpstolfp.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\ieee754io.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\info_trimble.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\mfp_mul.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parse.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parse_conf.c"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parsesolaris.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\parsestreams.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\libparse\trim_info.c"
+ >
+ </File>
+ </Filter>
+ <File
+ RelativePath="..\..\scripts\mkver.bat"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ ExcludedFromBuild="true"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpd&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\scripts\mkver.bat;..\..\include\config.h"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpd&#x0D;&#x0A;"
+ AdditionalDependencies="..\..\scripts\mkver.bat;..\..\include\config.h"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/ntpd/ntpd.vcxproj b/ports/winnt/vs2013/ntpd/ntpd.vcxproj
new file mode 100644
index 000000000000..50c9cd98953a
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd/ntpd.vcxproj
@@ -0,0 +1,1036 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{CB61F8BF-9637-495C-9087-E8664B400CE0}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpd.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Neither</FavorSizeOrSpeed>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpd;..\..\..\..\ntpd;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <SmallerTypeCheck>true</SmallerTypeCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpd.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpd-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;winmm.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>true</DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpd\cmd_args.c" />
+ <ClCompile Include="..\..\..\..\ntpd\keyword-gen.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\ntpd\nt_clockstuff.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_config.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_control.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_crypto.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_filegen.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_io.c" />
+ <ClCompile Include="..\..\ntpd\ntp_iocompletionport.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_leapsec.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_loopfilter.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_monitor.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_parser.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_peer.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_proto.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_refclock.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_request.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_restrict.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_scanner.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_signd.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_timer.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntp_util.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntpd-opts.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntpd.c" />
+ <ClCompile Include="..\..\..\..\ntpd\ntpsim.c" />
+ <ClCompile Include="..\..\ntpd\ntservice.c" />
+ <ClCompile Include="version.c">
+ <ShowIncludes Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ShowIncludes>
+ <ShowIncludes Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">true</ShowIncludes>
+ <ShowIncludes Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ShowIncludes>
+ <ShowIncludes Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">true</ShowIncludes>
+ </ClCompile>
+ <ClCompile Include="..\..\ntpd\hopf_PCI_io.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_acts.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_arbiter.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_arc.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_as2201.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_atom.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_bancomm.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_chronolog.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_chu.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_conf.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_datum.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_dumbclock.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_fg.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_gpsvme.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_heath.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_hopfpci.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_hopfser.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_hpgps.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_irig.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_jjy.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_jupiter.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_leitch.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_local.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_msfees.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_mx4200.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_neoclock4x.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_nmea.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_oncore.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_palisade.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_parse.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_pcf.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_pst.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_ripencc.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_shm.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_tpro.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_true.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_tsyncpci.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_tt560.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_ulink.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_wwv.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_wwvb.c" />
+ <ClCompile Include="..\..\..\..\ntpd\refclock_zyfer.c" />
+ <ClCompile Include="..\..\..\..\libparse\binio.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_computime.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_dcf7000.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_hopf6021.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_meinberg.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_rawdcf.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_rcc8000.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_schmid.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_trimtaip.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_trimtsip.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_varitext.c" />
+ <ClCompile Include="..\..\..\..\libparse\clk_wharton.c" />
+ <ClCompile Include="..\..\..\..\libparse\data_mbg.c" />
+ <ClCompile Include="..\..\..\..\libparse\gpstolfp.c" />
+ <ClCompile Include="..\..\..\..\libparse\ieee754io.c" />
+ <ClCompile Include="..\..\..\..\libparse\info_trimble.c" />
+ <ClCompile Include="..\..\..\..\libparse\mfp_mul.c" />
+ <ClCompile Include="..\..\..\..\libparse\parse.c" />
+ <ClCompile Include="..\..\..\..\libparse\parse_conf.c" />
+ <ClCompile Include="..\..\..\..\libparse\parsesolaris.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\parsestreams.c">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">true</ExcludedFromBuild>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\trim_info.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\ntpd\ntp_parser.y">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">true</ExcludedFromBuild>
+ </CustomBuild>
+ <None Include="..\..\libntp\MSG00001.bin" />
+ <None Include="..\libntp\messages.mc" />
+ <CustomBuild Include="..\..\scripts\mkver.bat">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">true</ExcludedFromBuild>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpd
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">..\..\scripts\mkver.bat;..\..\include\config.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\ascii.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\assertions.h" />
+ <ClInclude Include="..\..\..\..\include\binio.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\boolean.h" />
+ <ClInclude Include="..\..\include\clockstuff.h" />
+ <ClInclude Include="..\..\include\config.h" />
+ <ClInclude Include="..\..\..\..\ntpd\declcond.h" />
+ <ClInclude Include="..\..\include\hopf_PCI_io.h" />
+ <ClInclude Include="..\..\..\..\include\ieee754io.h" />
+ <ClInclude Include="..\..\include\netinet\in.h" />
+ <ClInclude Include="..\..\include\arpa\inet.h" />
+ <ClInclude Include="..\..\include\isc\int.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\interfaceiter.h" />
+ <ClInclude Include="..\..\..\..\include\iosignal.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\ipv6.h" />
+ <ClInclude Include="..\..\..\..\ntpd\jupiter.h" />
+ <ClInclude Include="..\..\..\..\include\l_stdlib.h" />
+ <ClInclude Include="..\..\..\libntp\log.h" />
+ <ClInclude Include="..\..\..\..\include\mbg_gps166.h" />
+ <ClInclude Include="..\..\include\isc\net.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\netaddr.h" />
+ <ClInclude Include="..\..\include\netdb.h" />
+ <ClInclude Include="..\..\..\..\include\ntp.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_assert.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_calendar.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_cmdargs.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_config.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_control.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_debug.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_filegen.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_fp.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_if.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_io.h" />
+ <ClInclude Include="..\..\include\ntp_iocompletionport.h" />
+ <CustomBuild Include="..\..\..\..\ntpd\ntp_keyword.h">
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Message Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">invoking keyword-gen on ntp_parser.h to produce ntp_keyword.h</Message>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">.\gen-ntp_keyword $(SolutionDir)$(Platform)-tmp\$(Configuration)
+</Command>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">..\..\..\..\ntpd\ntp_parser.h;%(AdditionalInputs)</AdditionalInputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">..\..\..\..\ntpd\ntp_keyword.h ..\..\..\..\ntpd\keyword-gen-utd;%(Outputs)</Outputs>
+ </CustomBuild>
+ <ClInclude Include="..\..\..\..\ntpd\ntp_leapsec.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_libopts.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_lists.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_malloc.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_net.h" />
+ <ClInclude Include="..\..\..\..\ntpd\ntp_parser.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_proto.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_random.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_refclock.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_request.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_rfc2553.h" />
+ <ClInclude Include="..\..\..\..\ntpd\ntp_scanner.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_select.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_string.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h" />
+ <ClInclude Include="..\..\include\ntp_timer.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_tty.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_types.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_unixtime.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_worker.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_workimpl.h" />
+ <ClInclude Include="..\..\..\..\ntpd\ntpd-opts.h" />
+ <ClInclude Include="..\..\..\..\include\ntpd.h" />
+ <ClInclude Include="..\..\..\..\include\ntpsim.h" />
+ <ClInclude Include="..\..\include\ntservice.h" />
+ <ClInclude Include="..\..\include\isc\offset.h" />
+ <ClInclude Include="..\..\..\..\sntp\libopts\autoopts\options.h" />
+ <ClInclude Include="..\..\include\sys\param.h" />
+ <ClInclude Include="..\..\include\isc\platform.h" />
+ <ClInclude Include="..\..\..\..\include\recvbuff.h" />
+ <ClInclude Include="..\..\..\..\ntpd\refclock_palisade.h" />
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\result.h" />
+ <ClInclude Include="..\..\include\sys\socket.h" />
+ <ClInclude Include="..\..\include\syslog.h" />
+ <ClInclude Include="..\..\include\termios.h" />
+ <ClInclude Include="..\..\include\timepps.h" />
+ <ClInclude Include="..\..\..\..\include\timespecops.h" />
+ <ClInclude Include="..\..\..\..\include\timevalops.h" />
+ <ClInclude Include="..\..\include\sys\wait.h" />
+ <ClInclude Include="..\..\include\win32_io.h" />
+ <ClInclude Include="..\..\include\isc\win32os.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\..\libntp\messages.rc">
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">..\libntp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ <ProjectReference Include="..\ntpd-keyword-gen\ntpd-keyword-gen.vcxproj">
+ <Project>{1b814cc1-ead4-4a13-b29c-a67b23c9845a}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters b/ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters
new file mode 100644
index 000000000000..c125d105b9be
--- /dev/null
+++ b/ports/winnt/vs2013/ntpd/ntpd.vcxproj.filters
@@ -0,0 +1,559 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{31ad5712-dbda-49a0-abf3-c24f1d3b3822}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{e8591cc7-e9b7-4fea-9747-d219a1ce73cf}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Generated Files">
+ <UniqueIdentifier>{952e91f9-804e-48f6-b49b-6b47ef88bfcb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{12a98ad7-139f-4258-8886-ed369f10cae6}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ <Filter Include="Reference Clock">
+ <UniqueIdentifier>{ca4a4827-79af-4bbf-abbb-58d6e6e6fdc3}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="Parse Lib">
+ <UniqueIdentifier>{5afb644e-b0fd-4fcb-96a3-2bac7c09a7cd}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpd\cmd_args.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\keyword-gen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\ntpd\nt_clockstuff.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_config.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_control.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_crypto.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_filegen.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_io.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\ntpd\ntp_iocompletionport.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_leapsec.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_loopfilter.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_monitor.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_parser.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_peer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_proto.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_refclock.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_request.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_restrict.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_scanner.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_signd.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_timer.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntp_util.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntpd-opts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntpd.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\ntpsim.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\ntpd\ntservice.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="version.c">
+ <Filter>Generated Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\ntpd\hopf_PCI_io.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_acts.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_arbiter.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_arc.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_as2201.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_atom.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_bancomm.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_chronolog.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_chu.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_conf.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_datum.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_dumbclock.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_fg.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_gpsvme.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_heath.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_hopfpci.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_hopfser.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_hpgps.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_irig.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_jjy.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_jupiter.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_leitch.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_local.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_msfees.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_mx4200.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_neoclock4x.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_nmea.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_oncore.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_palisade.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_parse.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_pcf.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_pst.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_ripencc.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_shm.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_tpro.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_true.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_tsyncpci.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_tt560.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_ulink.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_wwv.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_wwvb.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpd\refclock_zyfer.c">
+ <Filter>Reference Clock</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\binio.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_computime.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_dcf7000.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_hopf6021.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_meinberg.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_rawdcf.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_rcc8000.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_schmid.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_trimtaip.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_trimtsip.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_varitext.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\clk_wharton.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\data_mbg.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\gpstolfp.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\ieee754io.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\info_trimble.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\mfp_mul.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\parse.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\parse_conf.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\parsesolaris.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\parsestreams.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\libparse\trim_info.c">
+ <Filter>Parse Lib</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\..\libntp\MSG00001.bin">
+ <Filter>Generated Files</Filter>
+ </None>
+ <None Include="..\libntp\messages.mc">
+ <Filter>Resource Files</Filter>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\ascii.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\assertions.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\binio.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\boolean.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\clockstuff.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\declcond.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\hopf_PCI_io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ieee754io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\netinet\in.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\arpa\inet.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\int.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\interfaceiter.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\iosignal.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\win32\include\isc\ipv6.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\jupiter.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\l_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\libntp\log.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\mbg_gps166.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\netaddr.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\netdb.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_assert.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_calendar.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_cmdargs.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_control.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_debug.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_filegen.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_fp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_if.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ntp_iocompletionport.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\ntp_leapsec.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_libopts.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_lists.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_malloc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\ntp_parser.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_proto.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_random.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_refclock.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_request.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_rfc2553.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\ntp_scanner.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_select.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_string.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ntp_timer.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_tty.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_types.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_unixtime.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_worker.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_workimpl.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\ntpd-opts.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntpd.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntpsim.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\ntservice.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\offset.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\sntp\libopts\autoopts\options.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\param.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\platform.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\recvbuff.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpd\refclock_palisade.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\lib\isc\include\isc\result.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\socket.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\termios.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\timepps.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\timespecops.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\timevalops.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\sys\wait.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\win32_io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\win32os.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="..\..\libntp\messages.rc">
+ <Filter>Generated Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\ntpd\ntp_parser.y">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\..\ntpd\ntp_keyword.h">
+ <Filter>Header Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="..\..\scripts\mkver.bat">
+ <Filter>Source Files</Filter>
+ </CustomBuild>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpdate/ntpdate.vcproj b/ports/winnt/vs2013/ntpdate/ntpdate.vcproj
new file mode 100644
index 000000000000..85a4bef373ca
--- /dev/null
+++ b/ports/winnt/vs2013/ntpdate/ntpdate.vcproj
@@ -0,0 +1,362 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpdate"
+ ProjectGUID="{2789A62E-3F46-44F1-AAF0-816CD23C2911}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdate.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="false"
+ AdditionalIncludeDirectories="..\..\ntpdate,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC)"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntpdate.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdate-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdate.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpdate,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC)"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpdate.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdate-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpdate\ntpdate.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\include\config.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\isc\net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_fp.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_io.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_machine.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_net.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_select.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_stdlib.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_string.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_syslog.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_unixtime.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdate\ntpdate.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\include\syslog.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdate&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdate&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/ntpdate/ntpdate.vcxproj b/ports/winnt/vs2013/ntpdate/ntpdate.vcxproj
new file mode 100644
index 000000000000..5591fb7ae15f
--- /dev/null
+++ b/ports/winnt/vs2013/ntpdate/ntpdate.vcxproj
@@ -0,0 +1,750 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{2789A62E-3F46-44F1-AAF0-816CD23C2911}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdate.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdate;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdate.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdate-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpdate\ntpdate.c" />
+ <ClCompile Include="version.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\config.h" />
+ <ClInclude Include="..\..\include\isc\net.h" />
+ <ClInclude Include="..\..\..\..\include\ntp.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_fp.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_io.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_net.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_select.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_string.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_unixtime.h" />
+ <ClInclude Include="..\..\..\..\ntpdate\ntpdate.h" />
+ <ClInclude Include="..\..\include\syslog.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdate
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters b/ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters
new file mode 100644
index 000000000000..b2ec7e63204f
--- /dev/null
+++ b/ports/winnt/vs2013/ntpdate/ntpdate.vcxproj.filters
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{a889d71b-7d63-4e86-a764-a4075ede9e24}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{66b7a61f-7329-4b83-8b39-a15703b336bd}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{7acd1484-cc13-4187-a393-39ea3cb89649}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpdate\ntpdate.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="version.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\include\config.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\isc\net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_fp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_io.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_machine.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_net.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_select.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_stdlib.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_string.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_unixtime.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpdate\ntpdate.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\include\syslog.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpdc/ntpdc.vcproj b/ports/winnt/vs2013/ntpdc/ntpdc.vcproj
new file mode 100644
index 000000000000..5fd301ddf8b5
--- /dev/null
+++ b/ports/winnt/vs2013/ntpdc/ntpdc.vcproj
@@ -0,0 +1,367 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpdc"
+ ProjectGUID="{8011C820-B3D5-4034-86EA-FFC30AE6764B}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdc.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpdc,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntpdc.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdc-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpdc.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\ntpdc,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpdc.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpdc-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc-opts.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc_ops.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ WarningLevel="3"
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\include\ntp_assert.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpdc\ntpdc.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdc&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpdc&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/ntpdc/ntpdc.vcxproj b/ports/winnt/vs2013/ntpdc/ntpdc.vcxproj
new file mode 100644
index 000000000000..a16ab0551cdd
--- /dev/null
+++ b/ports/winnt/vs2013/ntpdc/ntpdc.vcxproj
@@ -0,0 +1,768 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{8011C820-B3D5-4034-86EA-FFC30AE6764B}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpdc.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpdc;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;__STDC__;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpdc.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpdc-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpdc\ntpdc-opts.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">Level3</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpdc\ntpdc.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">Level3</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpdc\ntpdc_ops.c">
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Level3</WarningLevel>
+ <WarningLevel Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">Level3</WarningLevel>
+ </ClCompile>
+ <ClCompile Include="version.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\ntp_assert.h" />
+ <ClInclude Include="..\..\..\..\include\ntp_lineedit.h" />
+ <ClInclude Include="..\..\..\..\ntpdc\ntpdc.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpdc
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpdc/ntpdc.vcxproj.filters b/ports/winnt/vs2013/ntpdc/ntpdc.vcxproj.filters
new file mode 100644
index 000000000000..8e83e7631a72
--- /dev/null
+++ b/ports/winnt/vs2013/ntpdc/ntpdc.vcxproj.filters
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{f9cafbdf-2c38-46c2-9c83-4e177c213fd8}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{5fa1d807-8b78-4e72-b44c-d698dd579a13}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{4c7e2cb5-4dc3-4551-b0a2-11b30ecd802c}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpdc\ntpdc-opts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpdc\ntpdc.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpdc\ntpdc_ops.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="version.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\ntp_assert.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\include\ntp_lineedit.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpdc\ntpdc.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpq/ntpq.vcproj b/ports/winnt/vs2013/ntpq/ntpq.vcproj
new file mode 100644
index 000000000000..440b38bae97a
--- /dev/null
+++ b/ports/winnt/vs2013/ntpq/ntpq.vcproj
@@ -0,0 +1,357 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="9.00"
+ Name="ntpq"
+ ProjectGUID="{6A92BF14-8931-48B1-A571-DEBE9F190616}"
+ TargetFrameworkVersion="0"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpq.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\ntpq,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ PrecompiledHeaderFile="$(IntDir)ntpq.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpq-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="0"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory="$(SolutionDir)$(PlatformName)-bin\$(ConfigurationName)\"
+ IntermediateDirectory="$(SolutionDir)$(PlatformName)-tmp\$(ConfigurationName)\$(TargetName)\"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ DeleteExtensionsOnClean="*.obj;*.ilk;*.tlb;*.tli;*.tlh;*.tmp;*.rsp;*.pgc;*.pgd;*.meta;$(TargetPath)"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName="$(IntDir)ntpq.tlb"
+ HeaderFileName=""
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ WholeProgramOptimization="true"
+ AdditionalIncludeDirectories="..\..\ntpq,..\..\include,..\..\..\..\include,..\..\..\..\lib\isc\win32\include,..\..\..\..\lib\isc\include,$(OPENSSL_INC),..\..\..\..\sntp\libopts"
+ PreprocessorDefinitions="_DEBUG;_CONSOLE;WIN32;;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS"
+ StringPooling="true"
+ MinimalRebuild="false"
+ ExceptionHandling="0"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ PrecompiledHeaderFile="$(IntDir)ntpq.pch"
+ AssemblerListingLocation="$(IntDir)"
+ ObjectFile="$(IntDir)"
+ ProgramDataBaseFileName="$(OutDir)ntpq-vc90"
+ BrowseInformation="1"
+ WarningLevel="4"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="3"
+ CompileAs="1"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="ws2_32.lib $(OPENSSL_LIB)\libeay32.lib"
+ OutputFile="$(OutDir)$(ProjectName).exe"
+ Version="0x0400"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ GenerateManifest="false"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile="$(OutDir)$(ProjectName).pdb"
+ SubSystem="1"
+ LinkTimeCodeGeneration="1"
+ RandomizedBaseAddress="1"
+ DataExecutionPrevention="0"
+ TargetMachine="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ SuppressStartupBanner="true"
+ OutputFile="$(IntDir)/$(ProjectName).bsc"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq-opts.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq-subs.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath=".\version.c"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ />
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ <File
+ RelativePath="..\..\..\..\include\ntp_lineedit.h"
+ >
+ </File>
+ <File
+ RelativePath="..\..\..\..\ntpq\ntpq.h"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ <File
+ RelativePath="..\..\..\..\packageinfo.sh"
+ >
+ <FileConfiguration
+ Name="Release|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpq&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32"
+ >
+ <Tool
+ Name="VCCustomBuildTool"
+ CommandLine="echo Using NT Shell Script to generate version.c&#x0D;&#x0A;..\..\scripts\mkver.bat -P ntpq&#x0D;&#x0A;"
+ Outputs="$(ProjectDir)version.c"
+ />
+ </FileConfiguration>
+ </File>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/ports/winnt/vs2013/ntpq/ntpq.vcxproj b/ports/winnt/vs2013/ntpq/ntpq.vcxproj
new file mode 100644
index 000000000000..e5f1f8430c18
--- /dev/null
+++ b/ports/winnt/vs2013/ntpq/ntpq.vcxproj
@@ -0,0 +1,740 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug XP|Win32">
+ <Configuration>Debug XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug XP|x64">
+ <Configuration>Debug XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|Win32">
+ <Configuration>Release XP</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release XP|x64">
+ <Configuration>Release XP</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{6A92BF14-8931-48B1-A571-DEBE9F190616}</ProjectGuid>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120_xp</PlatformToolset>
+ <UseOfMfc>false</UseOfMfc>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(VCTargetsPath)Microsoft.CPP.UpgradeFromVC60.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <OutDir>$(SolutionDir)$(Platform)-bin\$(Configuration)\</OutDir>
+ <IntDir>$(SolutionDir)$(Platform)-tmp\$(Configuration)\$(TargetName)\</IntDir>
+ <ExtensionsToDeleteOnClean>*.obj%3b*.ilk%3b*.tlb%3b*.tli%3b*.tlh%3b*.tmp%3b*.rsp%3b*.pgc%3b*.pgd%3b*.meta%3b$(TargetPath)</ExtensionsToDeleteOnClean>
+ <LinkIncremental>false</LinkIncremental>
+ <GenerateManifest>false</GenerateManifest>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Full</Optimization>
+ <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL64_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>NDEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <OmitFramePointers>true</OmitFramePointers>
+ <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName />
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling />
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention />
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <TargetMachine>MachineX86</TargetMachine>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>StreamingSIMDExtensions2</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>false</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">
+ <Midl>
+ <TypeLibraryName>$(IntDir)ntpq.tlb</TypeLibraryName>
+ <HeaderFileName>
+ </HeaderFileName>
+ </Midl>
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <AdditionalIncludeDirectories>$(VC_IncludePath);..\..\ntpq;..\..\include;..\..\..\..\include;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;$(OPENSSL_INC);..\..\..\..\sntp\libopts;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>_DEBUG;_CONSOLE;WIN32;SYS_WINNT;HAVE_CONFIG_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <StringPooling>true</StringPooling>
+ <MinimalRebuild>false</MinimalRebuild>
+ <ExceptionHandling>
+ </ExceptionHandling>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeaderOutputFile>$(IntDir)ntpq.pch</PrecompiledHeaderOutputFile>
+ <AssemblerListingLocation>$(IntDir)</AssemblerListingLocation>
+ <ObjectFileName>$(IntDir)</ObjectFileName>
+ <ProgramDataBaseFileName>$(OutDir)ntpq-vc90</ProgramDataBaseFileName>
+ <BrowseInformation>true</BrowseInformation>
+ <WarningLevel>Level4</WarningLevel>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsC</CompileAs>
+ <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
+ <InlineFunctionExpansion>Disabled</InlineFunctionExpansion>
+ <OmitFramePointers>true</OmitFramePointers>
+ <ExpandAttributedSource>true</ExpandAttributedSource>
+ <AssemblerOutput>All</AssemblerOutput>
+ <UseUnicodeForAssemblerListing>true</UseUnicodeForAssemblerListing>
+ </ClCompile>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <Culture>0x0409</Culture>
+ </ResourceCompile>
+ <Link>
+ <AdditionalDependencies>ws2_32.lib;$(OPENSSL64_LIB)\libeay32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <OutputFile>$(OutDir)$(ProjectName).exe</OutputFile>
+ <Version>
+ </Version>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <ProgramDatabaseFile>$(OutDir)$(ProjectName).pdb</ProgramDatabaseFile>
+ <SubSystem>Console</SubSystem>
+ <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
+ <RandomizedBaseAddress>false</RandomizedBaseAddress>
+ <DataExecutionPrevention>
+ </DataExecutionPrevention>
+ <GenerateMapFile>true</GenerateMapFile>
+ <MapExports>true</MapExports>
+ <OptimizeReferences>false</OptimizeReferences>
+ <EnableCOMDATFolding>false</EnableCOMDATFolding>
+ </Link>
+ <Bscmake>
+ <SuppressStartupBanner>true</SuppressStartupBanner>
+ <OutputFile>$(IntDir)$(ProjectName).bsc</OutputFile>
+ </Bscmake>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpq\ntpq-opts.c" />
+ <ClCompile Include="..\..\..\..\ntpq\ntpq-subs.c" />
+ <ClCompile Include="..\..\..\..\ntpq\ntpq.c" />
+ <ClCompile Include="version.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\ntp_lineedit.h" />
+ <ClInclude Include="..\..\..\..\ntpq\ntpq.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh">
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Command Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">echo Using NT Shell Script to generate version.c
+..\..\scripts\mkver.bat -P ntpq
+</Command>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|Win32'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ <Outputs Condition="'$(Configuration)|$(Platform)'=='Release XP|x64'">$(ProjectDir)version.c;%(Outputs)</Outputs>
+ </CustomBuild>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\libntp\libntp.vcxproj">
+ <Project>{400fbfcb-462e-40d0-b06b-3b74e3fffd00}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/ports/winnt/vs2013/ntpq/ntpq.vcxproj.filters b/ports/winnt/vs2013/ntpq/ntpq.vcxproj.filters
new file mode 100644
index 000000000000..0ac851d64a39
--- /dev/null
+++ b/ports/winnt/vs2013/ntpq/ntpq.vcxproj.filters
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{726ba7d7-a7f0-4d12-8713-79de7ce8f776}</UniqueIdentifier>
+ <Extensions>cpp;c;cxx;rc;def;r;odl;idl;hpj;bat</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{e0db3665-e32f-4959-97ac-4cfa2556ef19}</UniqueIdentifier>
+ <Extensions>h;hpp;hxx;hm;inl</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{29c4355d-bb94-4347-964f-5d1c731481d5}</UniqueIdentifier>
+ <Extensions>ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\..\ntpq\ntpq-opts.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpq\ntpq-subs.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\..\ntpq\ntpq.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="version.c">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\..\include\ntp_lineedit.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\..\ntpq\ntpq.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="..\..\..\..\packageinfo.sh" />
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 593f438570a2..2222f3bc5f06 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -180,6 +180,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -214,7 +215,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/build/Makefile.in b/scripts/build/Makefile.in
index e1d881161450..13e9011bd054 100644
--- a/scripts/build/Makefile.in
+++ b/scripts/build/Makefile.in
@@ -111,6 +111,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -145,7 +146,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/build/UpdatePoint b/scripts/build/UpdatePoint
index e3c5957dc6bc..61c034983b6c 100755
--- a/scripts/build/UpdatePoint
+++ b/scripts/build/UpdatePoint
@@ -217,20 +217,26 @@ case "$repo" in
;;
esac
-case "$bp::$point" in
- 0::*)
+case "$repo::$bp::$point" in
+ *::0::*)
newpoint=$point
;;
- 1::[1-9]*)
+ dev::1::0)
+ newpoint=`expr $point + 1`
+ ;;
+ *::1::[1-9]*)
newpoint=`expr $point + 1`
;;
- 1::)
+ dev::1::)
+ newpoint=0
+ ;;
+ stable::1::)
newpoint=1
;;
- 1::[Nn][Ee][Ww])
+ *::1::[Nn][Ee][Ww])
newpoint=
;;
- *) echo "Unexpected value for 'point' <$point>!"
+ *) echo "Unexpected value for 'point' <$point>! (repo::bp::point is $repo::$bp::$point)"
exit 1
;;
esac
diff --git a/scripts/build/VersionName b/scripts/build/VersionName
index 71e31a948ff0..84b5972261ac 100755
--- a/scripts/build/VersionName
+++ b/scripts/build/VersionName
@@ -19,8 +19,17 @@ esac
. "$packageinfo"
NAME="$version"
-case $point in
- [1-9]*)
+case "$repotype::$point" in
+ dev::)
+ case "${proto}.${major}" in
+ 4.[012])
+ NAME="${NAME}p${point}"
+ ;;
+ *) NAME="${NAME}"
+ ;;
+ esac
+ ;;
+ stable::[1-9]* | dev::[0-9]*)
case "${proto}.${major}" in
4.[012])
NAME="${NAME}p${point}"
@@ -31,7 +40,7 @@ case $point in
;;
NEW) ;;
'') ;;
- *) echo "Unexpected value for 'point' <$point>!"
+ *) echo "Unexpected value for 'point' <$point>! (repotype is <$repotype>)"
exit 1
;;
esac
diff --git a/scripts/calc_tickadj/Makefile.in b/scripts/calc_tickadj/Makefile.in
index be052be8f2eb..197f48460f3c 100644
--- a/scripts/calc_tickadj/Makefile.in
+++ b/scripts/calc_tickadj/Makefile.in
@@ -142,6 +142,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -176,7 +177,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
index b77ec1cc62f8..4d3ce1a18db4 100644
--- a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
+++ b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH calc_tickadj 1calc_tickadjman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH calc_tickadj 1calc_tickadjman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4GaOOZ/ag-fHaWNZ)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-1GaySe/ag-cHaGRe)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:36 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:11 AM by AutoGen 5.18.5pre4
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
index 911f0726dc5f..ac992ab7a1b3 100644
--- a/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
+++ b/scripts/calc_tickadj/calc_tickadj.1calc_tickadjmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:39 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:14 AM by AutoGen 5.18.5pre4
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/calc_tickadj/calc_tickadj.html b/scripts/calc_tickadj/calc_tickadj.html
index 8d0898f2fa05..0b68e58a6247 100644
--- a/scripts/calc_tickadj/calc_tickadj.html
+++ b/scripts/calc_tickadj/calc_tickadj.html
@@ -31,7 +31,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<h2 class="unnumbered">calc_tickadj User's Manual</h2>
<p>This document describes the use of the NTP Project's <code>calc_tickadj</code> program.
-This document applies to version 4.2.8 of <code>calc_tickadj</code>.
+This document applies to version 4.2.8p1 of <code>calc_tickadj</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
diff --git a/scripts/calc_tickadj/calc_tickadj.man.in b/scripts/calc_tickadj/calc_tickadj.man.in
index b77ec1cc62f8..4d3ce1a18db4 100644
--- a/scripts/calc_tickadj/calc_tickadj.man.in
+++ b/scripts/calc_tickadj/calc_tickadj.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH calc_tickadj 1calc_tickadjman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH calc_tickadj 1calc_tickadjman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4GaOOZ/ag-fHaWNZ)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-1GaySe/ag-cHaGRe)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:36 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:11 AM by AutoGen 5.18.5pre4
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/calc_tickadj/calc_tickadj.mdoc.in b/scripts/calc_tickadj/calc_tickadj.mdoc.in
index 911f0726dc5f..ac992ab7a1b3 100644
--- a/scripts/calc_tickadj/calc_tickadj.mdoc.in
+++ b/scripts/calc_tickadj/calc_tickadj.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt CALC_TICKADJ 1calc_tickadjmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (calc_tickadj-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:39 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:14 AM by AutoGen 5.18.5pre4
.\" From the definitions calc_tickadj-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/calc_tickadj/invoke-calc_tickadj.texi b/scripts/calc_tickadj/invoke-calc_tickadj.texi
index 93585e5247f4..163380103dbd 100644
--- a/scripts/calc_tickadj/invoke-calc_tickadj.texi
+++ b/scripts/calc_tickadj/invoke-calc_tickadj.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-calc_tickadj.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:44:41 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:16 AM by AutoGen 5.18.5pre4
# From the definitions calc_tickadj-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
diff --git a/scripts/invoke-plot_summary.texi b/scripts/invoke-plot_summary.texi
index d78ca9304afd..6f482f844142 100644
--- a/scripts/invoke-plot_summary.texi
+++ b/scripts/invoke-plot_summary.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-plot_summary.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:45:15 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:53 AM by AutoGen 5.18.5pre4
# From the definitions plot_summary-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -41,7 +41,7 @@ with a status code of 0.
@exampleindent 0
@example
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p1
USAGE: plot_summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
--directory=str Where the summary files are
diff --git a/scripts/invoke-summary.texi b/scripts/invoke-summary.texi
index 289490d73143..cfac1b1dfb88 100644
--- a/scripts/invoke-summary.texi
+++ b/scripts/invoke-summary.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-summary.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:45:21 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:59 AM by AutoGen 5.18.5pre4
# From the definitions summary-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -42,7 +42,7 @@ with a status code of 0.
@exampleindent 0
@example
-summary - compute various stastics from NTP stat files - Ver. 4.2.8
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p1
USAGE: summary [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
--directory=str Directory containing stat files
diff --git a/scripts/lib/Makefile.in b/scripts/lib/Makefile.in
index 9d460e1cadc7..c1437a49d88e 100644
--- a/scripts/lib/Makefile.in
+++ b/scripts/lib/Makefile.in
@@ -132,6 +132,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -166,7 +167,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/ntp-wait/Makefile.in b/scripts/ntp-wait/Makefile.in
index 8357c52122ba..4b2c58f2521e 100644
--- a/scripts/ntp-wait/Makefile.in
+++ b/scripts/ntp-wait/Makefile.in
@@ -141,6 +141,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -175,7 +176,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/ntp-wait/invoke-ntp-wait.texi b/scripts/ntp-wait/invoke-ntp-wait.texi
index 2f660b5ebf4a..19f3953f7dc3 100644
--- a/scripts/ntp-wait/invoke-ntp-wait.texi
+++ b/scripts/ntp-wait/invoke-ntp-wait.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp-wait.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:44:48 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:23 AM by AutoGen 5.18.5pre4
# From the definitions ntp-wait-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -61,7 +61,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p1
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
-n, --tries=num Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait-opts b/scripts/ntp-wait/ntp-wait-opts
index 3184f7b3e79d..b8f832585f24 100644
--- a/scripts/ntp-wait/ntp-wait-opts
+++ b/scripts/ntp-wait/ntp-wait-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (ntp-wait-opts)
#
-# It has been AutoGen-ed December 19, 2014 at 07:44:43 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:18 AM by AutoGen 5.18.5pre4
# From the definitions ntp-wait-opts.def
# and the template file perlopt
@@ -40,7 +40,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8
+ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p1
USAGE: ntp-wait [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
-n, --tries=num Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait.1ntp-waitman b/scripts/ntp-wait/ntp-wait.1ntp-waitman
index b30efe1d535c..4d41ede4a259 100644
--- a/scripts/ntp-wait/ntp-wait.1ntp-waitman
+++ b/scripts/ntp-wait/ntp-wait.1ntp-waitman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-wait 1ntp-waitman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntp-wait 1ntp-waitman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-JTaWc1/ag-WTa4b1)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-yXaGgg/ag-LXaOfg)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:45 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:20 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-wait-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc b/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
index 14e26d710f46..9720e45a43fe 100644
--- a/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
+++ b/scripts/ntp-wait/ntp-wait.1ntp-waitmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_WAIT 1ntp-waitmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:51 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:26 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-wait-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntp-wait/ntp-wait.html b/scripts/ntp-wait/ntp-wait.html
index 5ac2849df0b5..01840fde5649 100644
--- a/scripts/ntp-wait/ntp-wait.html
+++ b/scripts/ntp-wait/ntp-wait.html
@@ -39,7 +39,7 @@ until the system's time has stabilized and synchronized,
and only then start any applicaitons (like database servers) that require
accurate and stable time.
- <p>This document applies to version 4.2.8 of <code>ntp-wait</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntp-wait</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
@@ -114,7 +114,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8
+<pre class="example">ntp-wait - Wait for ntpd to stabilize the system clock - Ver. 4.2.8p1
USAGE: ntp-wait [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
-n, --tries=num Number of times to check ntpd
diff --git a/scripts/ntp-wait/ntp-wait.man.in b/scripts/ntp-wait/ntp-wait.man.in
index dbcfd24f7870..8d569c0cd4a5 100644
--- a/scripts/ntp-wait/ntp-wait.man.in
+++ b/scripts/ntp-wait/ntp-wait.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-wait @NTP_WAIT_MS@ "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntp-wait @NTP_WAIT_MS@ "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-JTaWc1/ag-WTa4b1)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-yXaGgg/ag-LXaOfg)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:45 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:20 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-wait-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntp-wait/ntp-wait.mdoc.in b/scripts/ntp-wait/ntp-wait.mdoc.in
index 7d73e4ebd90e..43514a03017b 100644
--- a/scripts/ntp-wait/ntp-wait.mdoc.in
+++ b/scripts/ntp-wait/ntp-wait.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_WAIT @NTP_WAIT_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-wait-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:51 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:26 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-wait-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntpsweep/Makefile.in b/scripts/ntpsweep/Makefile.in
index 0e1a2b21fdb7..e0d1dc6eb881 100644
--- a/scripts/ntpsweep/Makefile.in
+++ b/scripts/ntpsweep/Makefile.in
@@ -142,6 +142,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -176,7 +177,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/ntpsweep/invoke-ntpsweep.texi b/scripts/ntpsweep/invoke-ntpsweep.texi
index c8917a53b56c..fef89ae402ad 100644
--- a/scripts/ntpsweep/invoke-ntpsweep.texi
+++ b/scripts/ntpsweep/invoke-ntpsweep.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntpsweep.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:44:55 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:33 AM by AutoGen 5.18.5pre4
# From the definitions ntpsweep-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -45,7 +45,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p1
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [hostfile]
-l, --host-list=str Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep-opts b/scripts/ntpsweep/ntpsweep-opts
index fbddd827e755..cacc78bc13df 100644
--- a/scripts/ntpsweep/ntpsweep-opts
+++ b/scripts/ntpsweep/ntpsweep-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (ntpsweep-opts)
#
-# It has been AutoGen-ed December 19, 2014 at 07:44:53 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:31 AM by AutoGen 5.18.5pre4
# From the definitions ntpsweep-opts.def
# and the template file perlopt
@@ -43,7 +43,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8
+ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p1
USAGE: ntpsweep [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [hostfile]
-l, --host-list=str Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep.1ntpsweepman b/scripts/ntpsweep/ntpsweep.1ntpsweepman
index 45912acddaf6..624884435584 100644
--- a/scripts/ntpsweep/ntpsweep.1ntpsweepman
+++ b/scripts/ntpsweep/ntpsweep.1ntpsweepman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsweep 1ntpsweepman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntpsweep 1ntpsweepman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-9Pa4E2/ag-kQaaE2)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-8JaOIh/ag-jKaWHh)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:57 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:35 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsweep-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc b/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
index edcb21de9dd4..d51cd4540d88 100644
--- a/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
+++ b/scripts/ntpsweep/ntpsweep.1ntpsweepmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:00 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:39 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsweep-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntpsweep/ntpsweep.html b/scripts/ntpsweep/ntpsweep.html
index d8c3b7cf0a1c..453899bd72e2 100644
--- a/scripts/ntpsweep/ntpsweep.html
+++ b/scripts/ntpsweep/ntpsweep.html
@@ -30,7 +30,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<p>This document describes the use of the NTP Project's <code>ntpsweep</code> program.
- <p>This document applies to version 4.2.8 of <code>ntpsweep</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntpsweep</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
@@ -90,7 +90,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8
+<pre class="example">ntpsweep - Print various informations about given ntp servers - Ver. 4.2.8p1
USAGE: ntpsweep [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [hostfile]
-l, --host-list=str Host to execute actions on
diff --git a/scripts/ntpsweep/ntpsweep.man.in b/scripts/ntpsweep/ntpsweep.man.in
index 45912acddaf6..624884435584 100644
--- a/scripts/ntpsweep/ntpsweep.man.in
+++ b/scripts/ntpsweep/ntpsweep.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntpsweep 1ntpsweepman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntpsweep 1ntpsweepman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-9Pa4E2/ag-kQaaE2)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-8JaOIh/ag-jKaWHh)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:44:57 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:35 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsweep-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntpsweep/ntpsweep.mdoc.in b/scripts/ntpsweep/ntpsweep.mdoc.in
index edcb21de9dd4..d51cd4540d88 100644
--- a/scripts/ntpsweep/ntpsweep.mdoc.in
+++ b/scripts/ntpsweep/ntpsweep.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPSWEEP 1ntpsweepmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntpsweep-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:00 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:39 AM by AutoGen 5.18.5pre4
.\" From the definitions ntpsweep-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntptrace/Makefile.in b/scripts/ntptrace/Makefile.in
index a59e9362b263..f123f16dd267 100644
--- a/scripts/ntptrace/Makefile.in
+++ b/scripts/ntptrace/Makefile.in
@@ -141,6 +141,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -175,7 +176,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/scripts/ntptrace/invoke-ntptrace.texi b/scripts/ntptrace/invoke-ntptrace.texi
index 403961774924..b3792dd0cddb 100644
--- a/scripts/ntptrace/invoke-ntptrace.texi
+++ b/scripts/ntptrace/invoke-ntptrace.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntptrace.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:45:07 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:46 AM by AutoGen 5.18.5pre4
# From the definitions ntptrace-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -62,7 +62,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p1
USAGE: ntptrace [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace-opts b/scripts/ntptrace/ntptrace-opts
index 65b6e277a2c8..7bbdeb3532eb 100644
--- a/scripts/ntptrace/ntptrace-opts
+++ b/scripts/ntptrace/ntptrace-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (ntptrace-opts)
#
-# It has been AutoGen-ed December 19, 2014 at 07:45:02 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:40 AM by AutoGen 5.18.5pre4
# From the definitions ntptrace-opts.def
# and the template file perlopt
@@ -40,7 +40,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-ntptrace - Trace peers of an NTP server - Ver. 4.2.8
+ntptrace - Trace peers of an NTP server - Ver. 4.2.8p1
USAGE: ntptrace [ -<flag> [<val>] | --<name>[{=| }<val>] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace.1ntptraceman b/scripts/ntptrace/ntptrace.1ntptraceman
index aa4e63370483..82bc037e86c6 100644
--- a/scripts/ntptrace/ntptrace.1ntptraceman
+++ b/scripts/ntptrace/ntptrace.1ntptraceman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntptrace 1ntptraceman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntptrace 1ntptraceman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-ryayX3/ag-EyaGW3)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-nrai1i/ag-Araq0i)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:04 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:42 AM by AutoGen 5.18.5pre4
.\" From the definitions ntptrace-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntptrace/ntptrace.1ntptracemdoc b/scripts/ntptrace/ntptrace.1ntptracemdoc
index 17c0c788815f..5528eea74a12 100644
--- a/scripts/ntptrace/ntptrace.1ntptracemdoc
+++ b/scripts/ntptrace/ntptrace.1ntptracemdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPTRACE 1ntptracemdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:09 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:48 AM by AutoGen 5.18.5pre4
.\" From the definitions ntptrace-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/ntptrace/ntptrace.html b/scripts/ntptrace/ntptrace.html
index a0323a94ebec..291b9e91d6fe 100644
--- a/scripts/ntptrace/ntptrace.html
+++ b/scripts/ntptrace/ntptrace.html
@@ -31,7 +31,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<h2 class="unnumbered">Simple Network Time Protocol User Manual</h2>
<p>This document describes the use of the NTP Project's <code>ntptrace</code> program.
-This document applies to version 4.2.8 of <code>ntptrace</code>.
+This document applies to version 4.2.8p1 of <code>ntptrace</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
@@ -107,7 +107,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8
+<pre class="example">ntptrace - Trace peers of an NTP server - Ver. 4.2.8p1
USAGE: ntptrace [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... [host]
-n, --numeric Print IP addresses instead of hostnames
diff --git a/scripts/ntptrace/ntptrace.man.in b/scripts/ntptrace/ntptrace.man.in
index dc13ce06a794..c30859799753 100644
--- a/scripts/ntptrace/ntptrace.man.in
+++ b/scripts/ntptrace/ntptrace.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntptrace @NTPTRACE_MS@ "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntptrace @NTPTRACE_MS@ "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-ryayX3/ag-EyaGW3)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-nrai1i/ag-Araq0i)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:04 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:42 AM by AutoGen 5.18.5pre4
.\" From the definitions ntptrace-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/ntptrace/ntptrace.mdoc.in b/scripts/ntptrace/ntptrace.mdoc.in
index 975a55c18491..c8fffcf1381f 100644
--- a/scripts/ntptrace/ntptrace.mdoc.in
+++ b/scripts/ntptrace/ntptrace.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTPTRACE @NTPTRACE_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntptrace-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:09 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:48 AM by AutoGen 5.18.5pre4
.\" From the definitions ntptrace-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/plot_summary-opts b/scripts/plot_summary-opts
index a7fd55bf367f..ed27025d829f 100644
--- a/scripts/plot_summary-opts
+++ b/scripts/plot_summary-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (plot_summary-opts)
#
-# It has been AutoGen-ed December 19, 2014 at 07:45:11 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:49 AM by AutoGen 5.18.5pre4
# From the definitions plot_summary-opts.def
# and the template file perlopt
@@ -46,7 +46,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-plot_summary - plot statistics generated by summary script - Ver. 4.2.8
+plot_summary - plot statistics generated by summary script - Ver. 4.2.8p1
USAGE: plot_summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
--directory=str Where the summary files are
diff --git a/scripts/plot_summary.1plot_summaryman b/scripts/plot_summary.1plot_summaryman
index 3fa391531dd1..dd3d842128ee 100644
--- a/scripts/plot_summary.1plot_summaryman
+++ b/scripts/plot_summary.1plot_summaryman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH plot_summary 1plot_summaryman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH plot_summary 1plot_summaryman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-nJa4Z5/ag-AJaaZ5)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-GxaG3k/ag-VxaO2k)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:17 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:55 AM by AutoGen 5.18.5pre4
.\" From the definitions plot_summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/plot_summary.1plot_summarymdoc b/scripts/plot_summary.1plot_summarymdoc
index 639786eb6b30..1d6ba70c415c 100644
--- a/scripts/plot_summary.1plot_summarymdoc
+++ b/scripts/plot_summary.1plot_summarymdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:19 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:57 AM by AutoGen 5.18.5pre4
.\" From the definitions plot_summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/plot_summary.html b/scripts/plot_summary.html
index ff3e3f197581..d4a023539b57 100644
--- a/scripts/plot_summary.html
+++ b/scripts/plot_summary.html
@@ -31,7 +31,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<h2 class="unnumbered">Plot_summary User Manual</h2>
<p>This document describes the use of the NTP Project's <code>plot_summary</code> program.
-This document applies to version 4.2.8 of <code>plot_summary</code>.
+This document applies to version 4.2.8p1 of <code>plot_summary</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
@@ -89,7 +89,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8
+<pre class="example">plot_summary - plot statistics generated by summary script - Ver. 4.2.8p1
USAGE: plot_summary [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
--directory=str Where the summary files are
diff --git a/scripts/plot_summary.man.in b/scripts/plot_summary.man.in
index 3fa391531dd1..dd3d842128ee 100644
--- a/scripts/plot_summary.man.in
+++ b/scripts/plot_summary.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH plot_summary 1plot_summaryman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH plot_summary 1plot_summaryman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-nJa4Z5/ag-AJaaZ5)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-GxaG3k/ag-VxaO2k)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:17 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:55 AM by AutoGen 5.18.5pre4
.\" From the definitions plot_summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/plot_summary.mdoc.in b/scripts/plot_summary.mdoc.in
index 639786eb6b30..1d6ba70c415c 100644
--- a/scripts/plot_summary.mdoc.in
+++ b/scripts/plot_summary.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt PLOT_SUMMARY 1plot_summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (plot_summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:19 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:37:57 AM by AutoGen 5.18.5pre4
.\" From the definitions plot_summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/summary-opts b/scripts/summary-opts
index edd3b3945087..5f6921b5aa93 100644
--- a/scripts/summary-opts
+++ b/scripts/summary-opts
@@ -1,6 +1,6 @@
# EDIT THIS FILE WITH CAUTION (summary-opts)
#
-# It has been AutoGen-ed December 19, 2014 at 07:45:13 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:37:51 AM by AutoGen 5.18.5pre4
# From the definitions summary-opts.def
# and the template file perlopt
@@ -44,7 +44,7 @@ sub processOptions {
'help|?', 'more-help'));
$usage = <<'USAGE';
-summary - compute various stastics from NTP stat files - Ver. 4.2.8
+summary - compute various stastics from NTP stat files - Ver. 4.2.8p1
USAGE: summary [ -<flag> [<val>] | --<name>[{=| }<val>] ]...
--directory=str Directory containing stat files
diff --git a/scripts/summary.1summaryman b/scripts/summary.1summaryman
index 36680b8cc5ce..5f3cf6b649d8 100644
--- a/scripts/summary.1summaryman
+++ b/scripts/summary.1summaryman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH summary 1summaryman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH summary 1summaryman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-A3aGb6/ag-M3aOa6)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-kPaifl/ag-xPaqel)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:22 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:38:00 AM by AutoGen 5.18.5pre4
.\" From the definitions summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/summary.1summarymdoc b/scripts/summary.1summarymdoc
index 603eea825fdc..8fc7836f63f2 100644
--- a/scripts/summary.1summarymdoc
+++ b/scripts/summary.1summarymdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt SUMMARY 1summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:24 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:38:02 AM by AutoGen 5.18.5pre4
.\" From the definitions summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/scripts/summary.html b/scripts/summary.html
index 269e903fd3f6..81080966e140 100644
--- a/scripts/summary.html
+++ b/scripts/summary.html
@@ -31,7 +31,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#dir">(dir)</a>
<h2 class="unnumbered">Summary User Manual</h2>
<p>This document describes the use of the NTP Project's <code>summary</code> program.
-This document applies to version 4.2.8 of <code>summary</code>.
+This document applies to version 4.2.8p1 of <code>summary</code>.
<div class="shortcontents">
<h2>Short Contents</h2>
@@ -88,7 +88,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8
+<pre class="example">summary - compute various stastics from NTP stat files - Ver. 4.2.8p1
USAGE: summary [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]...
--directory=str Directory containing stat files
diff --git a/scripts/summary.man.in b/scripts/summary.man.in
index 36680b8cc5ce..5f3cf6b649d8 100644
--- a/scripts/summary.man.in
+++ b/scripts/summary.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH summary 1summaryman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH summary 1summaryman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-A3aGb6/ag-M3aOa6)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-kPaifl/ag-xPaqel)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:22 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:38:00 AM by AutoGen 5.18.5pre4
.\" From the definitions summary-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
diff --git a/scripts/summary.mdoc.in b/scripts/summary.mdoc.in
index 603eea825fdc..8fc7836f63f2 100644
--- a/scripts/summary.mdoc.in
+++ b/scripts/summary.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt SUMMARY 1summarymdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (summary-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:45:24 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:38:02 AM by AutoGen 5.18.5pre4
.\" From the definitions summary-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
diff --git a/sntp/COPYRIGHT b/sntp/COPYRIGHT
index 1775a64784a5..9c1a0f839358 100644
--- a/sntp/COPYRIGHT
+++ b/sntp/COPYRIGHT
@@ -4,16 +4,16 @@ This file is automatically generated from html/copyright.html
jpg "Clone me," says Dolly sheepishly.
- Last update: 9-Aug-2014 07:56 UTC
+ Last update: 17-Jan-2015 00:16 UTC
_________________________________________________________________
The following copyright notice applies to all files collectively
called the Network Time Protocol Version 4 Distribution. Unless
- specifically declared otherwise in an individual file, this notice
- applies as if the text was explicitly included in the file.
+ specifically declared otherwise in an individual file, this entire
+ notice applies as if the text was explicitly included in the file.
***********************************************************************
* *
-* Copyright (c) University of Delaware 1992-2014 *
+* Copyright (c) University of Delaware 1992-2015 *
* *
* Permission to use, copy, modify, and distribute this software and *
* its documentation for any purpose with or without fee is hereby *
@@ -29,6 +29,38 @@ This file is automatically generated from html/copyright.html
* *
***********************************************************************
+ Content starting in 2011 from Harlan Stenn, Danny Mayer, and Martin
+ Burnicki is:
+***********************************************************************
+* *
+* Copyright (c) Network Time Foundation 2011-2015 *
+* *
+* All Rights Reserved *
+* *
+* Redistribution and use in source and binary forms, with or without *
+* modification, are permitted provided that the following conditions *
+* are met: *
+* 1. Redistributions of source code must retain the above copyright *
+* notice, this list of conditions and the following disclaimer. *
+* 2. Redistributions in binary form must reproduce the above *
+* copyright notice, this list of conditions and the following *
+* disclaimer in the documentation and/or other materials provided *
+* with the distribution. *
+* *
+* THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS *
+* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED *
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE *
+* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE *
+* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR *
+* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT *
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR *
+* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
+* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT *
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *
+* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH *
+* DAMAGE. *
+***********************************************************************
+
The following individuals contributed in part to the Network Time
Protocol Distribution Version 4 and are acknowledged as authors of
this work.
diff --git a/sntp/Makefile.am b/sntp/Makefile.am
index 81a137a3348a..8694ed3e75ca 100644
--- a/sntp/Makefile.am
+++ b/sntp/Makefile.am
@@ -56,21 +56,22 @@ sbin_PROGRAMS = @SNTP_DS@
SUBDIRS = include scripts
DIST_SUBDIRS = include scripts
-if BUILD_SNTP
-noinst_LIBRARIES = libsntp.a
if BUILD_LIBEVENT
SUBDIRS += libevent
DIST_SUBDIRS += libevent
endif
-if GTEST_AVAILABLE
-SUBDIRS += tests
-endif
-endif
if NEED_LIBOPTS
SUBDIRS += libopts
endif
+if BUILD_SNTP
+noinst_LIBRARIES = libsntp.a
+if GTEST_AVAILABLE
+SUBDIRS += tests
+endif
+endif
+
DIST_SUBDIRS += libopts tests
libsntp_a_SOURCES = \
diff --git a/sntp/Makefile.in b/sntp/Makefile.in
index c03abeef7ed7..f58700593da3 100644
--- a/sntp/Makefile.in
+++ b/sntp/Makefile.in
@@ -42,10 +42,10 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
EXTRA_PROGRAMS = sntp$(EXEEXT)
-@BUILD_LIBEVENT_TRUE@@BUILD_SNTP_TRUE@am__append_1 = libevent
-@BUILD_LIBEVENT_TRUE@@BUILD_SNTP_TRUE@am__append_2 = libevent
-@BUILD_SNTP_TRUE@@GTEST_AVAILABLE_TRUE@am__append_3 = tests
-@NEED_LIBOPTS_TRUE@am__append_4 = libopts
+@BUILD_LIBEVENT_TRUE@am__append_1 = libevent
+@BUILD_LIBEVENT_TRUE@am__append_2 = libevent
+@NEED_LIBOPTS_TRUE@am__append_3 = libopts
+@BUILD_SNTP_TRUE@@GTEST_AVAILABLE_TRUE@am__append_4 = tests
DIST_COMMON = $(am__configure_deps) $(noinst_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(top_srcdir)/bincheck.mf \
@@ -278,6 +278,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
LDFLAGS_NTP = @LDFLAGS_NTP@
diff --git a/sntp/config.h.in b/sntp/config.h.in
index 122fee502b3e..64279b9fa9f6 100644
--- a/sntp/config.h.in
+++ b/sntp/config.h.in
@@ -835,6 +835,9 @@ typedef unsigned int uintptr_t;
/* What type to use for setsockopt */
#undef TYPEOF_IP_MULTICAST_LOOP
+/* OK to use snprintb()? */
+#undef USE_SNPRINTB
+
/* Can we use SIGPOLL for tty IO? */
#undef USE_TTY_SIGPOLL
diff --git a/sntp/configure b/sntp/configure
index 0592f2245863..b4c66f743b5e 100755
--- a/sntp/configure
+++ b/sntp/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for sntp 4.2.8.
+# Generated by GNU Autoconf 2.68 for sntp 4.2.8p1.
#
# Report bugs to <http://bugs.ntp.org./>.
#
@@ -570,8 +570,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sntp'
PACKAGE_TARNAME='sntp'
-PACKAGE_VERSION='4.2.8'
-PACKAGE_STRING='sntp 4.2.8'
+PACKAGE_VERSION='4.2.8p1'
+PACKAGE_STRING='sntp 4.2.8p1'
PACKAGE_BUGREPORT='http://bugs.ntp.org./'
PACKAGE_URL='http://www.ntp.org./'
@@ -676,6 +676,7 @@ PTHREADS_TRUE
LIBISC_PTHREADS_NOTHREADS
PTHREAD_LIBS
HAVE_INLINE
+LDADD_LIBUTIL
ALLOCA
LIBM
EDITLINE_LIBS
@@ -1456,7 +1457,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures sntp 4.2.8 to adapt to many kinds of systems.
+\`configure' configures sntp 4.2.8p1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1526,7 +1527,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of sntp 4.2.8:";;
+ short | recursive ) echo "Configuration of sntp 4.2.8p1:";;
esac
cat <<\_ACEOF
@@ -1669,7 +1670,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-sntp configure 4.2.8
+sntp configure 4.2.8p1
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -2494,7 +2495,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by sntp $as_me 4.2.8, which was
+It was created by sntp $as_me 4.2.8p1, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -3437,7 +3438,7 @@ fi
# Define the identity of the package.
PACKAGE='sntp'
- VERSION='4.2.8'
+ VERSION='4.2.8p1'
cat >>confdefs.h <<_ACEOF
@@ -5220,6 +5221,183 @@ if test "x$ac_cv_prog_cc_c89" != xno; then :
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __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
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ 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 void
+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;
+ float fnumber;
+
+ 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);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ 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[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+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
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c99" != xno; then :
+
+fi
+
+
@@ -5953,6 +6131,7 @@ fi
+
CFLAGS_NTP=
CPPFLAGS_NTP=
LDADD_NTP=
@@ -8916,6 +9095,73 @@ fi
done
+# Bug 2713
+LDADD_LIBUTIL=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing snprintb" >&5
+$as_echo_n "checking for library containing snprintb... " >&6; }
+if ${ac_cv_search_snprintb+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ 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. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char snprintb ();
+int
+main ()
+{
+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$ac_exeext
+ if ${ac_cv_search_snprintb+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_snprintb+:} false; then :
+
+else
+ ac_cv_search_snprintb=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_snprintb" >&5
+$as_echo "$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
+
+$as_echo "#define USE_SNPRINTB 1" >>confdefs.h
+
+fi
+
+
#
for ac_header in errno.h sys/socket.h sys/types.h time.h
do :
@@ -24350,6 +24596,13 @@ $as_echo "#define NO_OPTIONAL_OPT_ARGS 1" >>confdefs.h
# 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'
@@ -24485,13 +24738,11 @@ fi
- if test -z "$BUILD_SNTP_TRUE"; then :
-
-ntp_libevent_min_version=2.0.9
+ntp_libevent_min_version=2
ntp_libevent_tearoff=libevent
@@ -24601,95 +24852,6 @@ esac
- else
-
-
-ntp_libevent_min_version=2.0.9
-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
- /*)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libevent $ntp_libevent_min_version or later is installed" >&5
-$as_echo_n "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
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using the installed libevent" >&5
-$as_echo "$as_me: Using the installed libevent" >&6;}
- 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`
- do
- case "$i" in
- -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"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- ntp_use_local_libevent=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- ntp_use_local_libevent=yes
- ;;
- esac
- ;;
-esac
-
-case "$ntp_use_local_libevent" in
- yes)
- { $as_echo "$as_me:${as_lineno-$LINENO}: Using libevent tearoff" >&5
-$as_echo "$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
-
-
-
-
- fi
-
# Checks for libraries.
@@ -30051,10 +30213,6 @@ 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 "${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 "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -30472,7 +30630,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by sntp $as_me 4.2.8, which was
+This file was extended by sntp $as_me 4.2.8p1, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -30539,7 +30697,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-sntp config.status 4.2.8
+sntp config.status 4.2.8p1
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/sntp/configure.ac b/sntp/configure.ac
index e10346849697..172c6b1a1f7d 100644
--- a/sntp/configure.ac
+++ b/sntp/configure.ac
@@ -97,11 +97,14 @@ esac
enable_nls=no
LIBOPTS_CHECK
-AM_COND_IF(
- [BUILD_SNTP],
- [NTP_LIBEVENT_CHECK],
- [NTP_LIBEVENT_CHECK_NOBUILD]
-)
+# From when we only used libevent for sntp:
+#AM_COND_IF(
+# [BUILD_SNTP],
+# [NTP_LIBEVENT_CHECK],
+# [NTP_LIBEVENT_CHECK_NOBUILD]
+#)
+
+NTP_LIBEVENT_CHECK([2])
# Checks for libraries.
diff --git a/sntp/crypto.c b/sntp/crypto.c
index aa8d91dd222a..b178f8c2e157 100644
--- a/sntp/crypto.c
+++ b/sntp/crypto.c
@@ -3,7 +3,7 @@
#include <ctype.h>
struct key *key_ptr;
-int key_cnt = 0;
+size_t key_cnt = 0;
int
make_mac(
@@ -51,7 +51,7 @@ auth_md5(
int authentic;
char digest[20];
- if (mac_size > sizeof(digest))
+ if (mac_size > (int)sizeof(digest))
return 0;
hash_len = make_mac(pkt_data, pkt_size, sizeof(digest), cmp_key,
digest);
diff --git a/sntp/include/Makefile.in b/sntp/include/Makefile.in
index dd0a84be5e80..9f5c92a83a76 100644
--- a/sntp/include/Makefile.in
+++ b/sntp/include/Makefile.in
@@ -133,6 +133,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
LDFLAGS_NTP = @LDFLAGS_NTP@
diff --git a/sntp/include/copyright.def b/sntp/include/copyright.def
index 317ff6d85987..1cc7ad270886 100644
--- a/sntp/include/copyright.def
+++ b/sntp/include/copyright.def
@@ -1,8 +1,8 @@
/* -*- Mode: Text -*- */
copyright = {
- date = "1970-2014";
- owner = "The University of Delaware";
+ date = "1992-2015";
+ owner = "The University of Delaware and Network Time Foundation";
eaddr = "http://bugs.ntp.org, bugs@ntp.org";
type = ntp;
};
diff --git a/sntp/include/ntp.lic b/sntp/include/ntp.lic
index 0e42503a4912..69af392e1bfc 100644
--- a/sntp/include/ntp.lic
+++ b/sntp/include/ntp.lic
@@ -9,7 +9,7 @@
<PFX>documentation for any purpose with or without fee is hereby granted,
<PFX>provided that the above copyright notice appears in all copies and that
<PFX>both the copyright notice and this permission notice appear in
-<PFX>supporting documentation, and that the name <owner> not be used in
+<PFX>supporting documentation, and that the name The University of Delaware not be used in
<PFX>advertising or publicity pertaining to distribution of the software
<PFX>without specific, written prior permission. <owner> makes no
<PFX>representations about the suitability this software for any purpose. It
diff --git a/sntp/include/version.def b/sntp/include/version.def
index b0f0d07a4ffe..47e57c8c3bbc 100644
--- a/sntp/include/version.def
+++ b/sntp/include/version.def
@@ -1 +1 @@
-version = '4.2.8';
+version = '4.2.8p1';
diff --git a/sntp/include/version.texi b/sntp/include/version.texi
index a43551d2cd01..bc3cc0638b96 100644
--- a/sntp/include/version.texi
+++ b/sntp/include/version.texi
@@ -1,3 +1,3 @@
-@set UPDATED 19 December 2014
-@set EDITION 4.2.8
-@set VERSION 4.2.8
+@set UPDATED 04 February 2015
+@set EDITION 4.2.8p1
+@set VERSION 4.2.8p1
diff --git a/sntp/invoke-sntp.texi b/sntp/invoke-sntp.texi
index 68bfc3827b33..e9be80c17f15 100644
--- a/sntp/invoke-sntp.texi
+++ b/sntp/invoke-sntp.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-sntp.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:51:36 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:34:17 AM by AutoGen 5.18.5pre4
# From the definitions sntp-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -100,7 +100,7 @@ with a status code of 0.
@exampleindent 0
@example
-sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8
+sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p1
Usage: sntp [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]... \
[ hostname-or-IP ...]
Flg Arg Option-Name Description
@@ -282,7 +282,9 @@ 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)}.
+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
diff --git a/sntp/libevent/Makefile.in b/sntp/libevent/Makefile.in
index 57b43eb7c725..463ae8cb82d8 100644
--- a/sntp/libevent/Makefile.in
+++ b/sntp/libevent/Makefile.in
@@ -79,7 +79,7 @@ DIST_COMMON = README $(am__configure_deps) \
$(srcdir)/test/include.am $(top_srcdir)/configure ChangeLog \
build-aux/compile build-aux/config.guess build-aux/config.sub \
build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \
- build-aux/missing epoll_sub.c
+ build-aux/missing build-aux/ylwrap epoll_sub.c
@INSTALL_LIBEVENT_FALSE@am__append_5 = $(EVENT2_EXPORT)
@OPENSSL_TRUE@am__append_6 = sample/le-proxy sample/https-client
@OPENSSL_TRUE@am__append_7 = \
diff --git a/sntp/libopts/Makefile.in b/sntp/libopts/Makefile.in
index 111bc0f3a7fd..3b107c7a73e3 100644
--- a/sntp/libopts/Makefile.in
+++ b/sntp/libopts/Makefile.in
@@ -187,6 +187,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
LDFLAGS_NTP = @LDFLAGS_NTP@
diff --git a/sntp/libopts/autoopts.h b/sntp/libopts/autoopts.h
index ac0a199bfd1e..6987958cd111 100644
--- a/sntp/libopts/autoopts.h
+++ b/sntp/libopts/autoopts.h
@@ -258,7 +258,7 @@ typedef struct {
#define AGALOC(c, w) ao_malloc((size_t)c)
#define AGREALOC(p, c, w) ao_realloc((void*)p, (size_t)c)
-#define AGFREE(_p) free((void *)_p)
+#define AGFREE(p) free((void *)(intptr_t)p)
#define AGDUPSTR(p, s, w) (p = ao_strdup(s))
static void *
@@ -452,7 +452,7 @@ typedef enum { AOFLAG_TABLE } ao_flags_t;
#undef _aof_
static char const zNil[] = "";
-static arg_types_t argTypes = { NULL };
+static arg_types_t argTypes = { 0 };
static char line_fmt_buf[32];
static bool displayEnum = false;
static char const pkgdatadir_default[] = PKGDATADIR;
diff --git a/sntp/libopts/autoopts/options.h b/sntp/libopts/autoopts/options.h
index 0d6f2c371d18..32397eb9a081 100644
--- a/sntp/libopts/autoopts/options.h
+++ b/sntp/libopts/autoopts/options.h
@@ -600,9 +600,17 @@ struct options {
char * pzCurOpt; ///< current option text
/// Public, the full path of the program
+#if AUTOOPTS_INTERNAL
+ char const * pzProgPath;
+#else
char const * const pzProgPath;
+#endif
/// Public, the name of the executable, without any path
+#if AUTOOPTS_INTERNAL
+ char const * pzProgName;
+#else
char const * const pzProgName;
+#endif
/// Public, the upper-cased, shell variable syntax-ed program name
char const * const pzPROGNAME;
/// the name of the "rc file" (configuration file)
@@ -1222,7 +1230,7 @@ extern void optionResetOpt(tOptions*, tOptDesc*);
extern void optionSetMembers(tOptions*, tOptDesc*, char const * const *, unsigned int);
-extern void optionShowRange(tOptions*, tOptDesc*, void *, int);
+extern void optionShowRange(tOptions*, tOptDesc*, const void *, int);
extern void optionStackArg(tOptions*, tOptDesc*);
diff --git a/sntp/libopts/configfile.c b/sntp/libopts/configfile.c
index d4bc4fea2870..040944635658 100644
--- a/sntp/libopts/configfile.c
+++ b/sntp/libopts/configfile.c
@@ -184,7 +184,7 @@ optionFindValue(const tOptDesc * odesc, char const * name, char const * val)
else do {
tArgList* argl = odesc->optCookie;
int argct = argl->useCt;
- void ** poptv = (void**)(argl->apzArgs);
+ void ** poptv = (void**)(intptr_t)(argl->apzArgs);
if (argct == 0) {
errno = ENOENT;
@@ -266,7 +266,7 @@ optionFindNextValue(const tOptDesc * odesc, const tOptionValue * pPrevVal,
else do {
tArgList* argl = odesc->optCookie;
int ct = argl->useCt;
- void** poptv = (void**)argl->apzArgs;
+ void** poptv = (void**)(intptr_t)argl->apzArgs;
while (--ct >= 0) {
tOptionValue* pOV = *(poptv++);
@@ -326,7 +326,7 @@ optionGetValue(tOptionValue const * oov, char const * vname)
if (arg_list->useCt > 0) {
int ct = arg_list->useCt;
- void ** ovlist = (void**)(arg_list->apzArgs);
+ void ** ovlist = (void**)(intptr_t)(arg_list->apzArgs);
if (vname == NULL) {
res = (tOptionValue*)*ovlist;
@@ -385,7 +385,7 @@ optionNextValue(tOptionValue const * ov_list,tOptionValue const * oov )
arg_list = ov_list->v.nestVal;
{
int ct = arg_list->useCt;
- void ** o_list = (void**)(arg_list->apzArgs);
+ void ** o_list = (void**)(intptr_t)(arg_list->apzArgs);
while (ct-- > 0) {
tOptionValue * nov = *(o_list++);
@@ -931,7 +931,7 @@ handle_struct(tOptions * opts, tOptState * ost, char * txt, int dir)
switch (*txt) {
case ' ':
case '\t':
- txt = (void *)parse_attrs(
+ txt = (void *)(intptr_t)parse_attrs(
opts, SPN_WHITESPACE_CHARS(txt), &mode, &valu);
if (txt == NULL)
return txt;
@@ -1138,7 +1138,7 @@ optionFileLoad(tOptions * opts, char const * prog)
*/
{
char const ** pp =
- (char const **)(void *)&(opts->pzProgName);
+ (char const **)(void *)(intptr_t)&(opts->pzProgName);
*pp = prog;
}
diff --git a/sntp/libopts/enum.c b/sntp/libopts/enum.c
index 299ffb12e1e4..e759e8c0a5f0 100644
--- a/sntp/libopts/enum.c
+++ b/sntp/libopts/enum.c
@@ -189,11 +189,11 @@ find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
* The result gets stashed in a char* pointer.
*/
uintptr_t res = name_ct;
- size_t len = strlen((char*)name);
+ size_t len = strlen((const char*)name);
uintptr_t idx;
if (IS_DEC_DIGIT_CHAR(*name)) {
- char * pz = (char *)(void *)name;
+ char * pz = (char *)(void *)(intptr_t)name;
unsigned long val = strtoul(pz, &pz, 0);
if ((*pz == NUL) && (val < name_ct))
return (uintptr_t)val;
@@ -215,7 +215,7 @@ find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
* Multiple partial matches means we have an ambiguous match.
*/
for (idx = 0; idx < name_ct; idx++) {
- if (strncmp((char*)paz_names[idx], (char*)name, len) == 0) {
+ if (strncmp((char*)(intptr_t)paz_names[idx], (char*)(intptr_t)name, len) == 0) {
if (paz_names[idx][len] == NUL)
return idx; /* full match */
@@ -521,7 +521,7 @@ optionMemberList(tOptDesc * od)
uintptr_t sv = od->optArg.argIntptr;
char * res;
(*(od->pOptProc))(OPTPROC_RETURN_VALNAME, od);
- res = (void *)od->optArg.argString;
+ res = (void *)(intptr_t)od->optArg.argString;
od->optArg.argIntptr = sv;
return res;
}
diff --git a/sntp/libopts/file.c b/sntp/libopts/file.c
index ec740c5d309d..d5fdb4a98b71 100644
--- a/sntp/libopts/file.c
+++ b/sntp/libopts/file.c
@@ -107,7 +107,7 @@ open_file_fd(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
/* NOTREACHED */
if ((pOD->fOptState & OPTST_ALLOC_ARG) != 0)
- pOD->optCookie = (void *)pOD->optArg.argString;
+ pOD->optCookie = (void *)(intptr_t)pOD->optArg.argString;
else
AGDUPSTR(pOD->optCookie, pOD->optArg.argString, "file name");
@@ -131,7 +131,7 @@ fopen_file_fp(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode)
/* NOTREACHED */
if ((pOD->fOptState & OPTST_ALLOC_ARG) != 0)
- pOD->optCookie = (void *)pOD->optArg.argString;
+ pOD->optCookie = (void *)(intptr_t)pOD->optArg.argString;
else
AGDUPSTR(pOD->optCookie, pOD->optArg.argString, "file name");
diff --git a/sntp/libopts/find.c b/sntp/libopts/find.c
index 1ec02e5f6de1..8d4789628cef 100644
--- a/sntp/libopts/find.c
+++ b/sntp/libopts/find.c
@@ -80,7 +80,7 @@ parse_opt(char const ** nm_pp, char ** arg_pp, char * buf, size_t bufsz)
buf[res] = NUL;
*nm_pp = buf;
- *arg_pp = (char *)p;
+ *arg_pp = (char *)(intptr_t)p;
return res;
default:
@@ -711,7 +711,7 @@ find_opt(tOptions * opts, tOptState * o_st)
* strip off the "const" quality of the "default_opt" field.
*/
while (*(++pz) == '-') ;
- def_opt = (void *)&(opts->specOptIdx.default_opt);
+ def_opt = (void *)(intptr_t)&(opts->specOptIdx.default_opt);
def = *def_opt;
*def_opt = NO_EQUIVALENT;
res = opt_find_long(opts, pz, o_st);
diff --git a/sntp/libopts/init.c b/sntp/libopts/init.c
index e038ed74e290..9374528126dc 100644
--- a/sntp/libopts/init.c
+++ b/sntp/libopts/init.c
@@ -101,20 +101,17 @@ validate_struct(tOptions * opts, char const * pname)
*/
if (opts->pzProgName == NULL) {
char const * pz = strrchr(pname, DIRCH);
- char const ** pp =
- (char const **)(void **)&(opts->pzProgName);
if (pz != NULL)
- *pp = pz+1;
+ opts->pzProgName = pz+1;
else
- *pp = pname;
+ opts->pzProgName = pname;
- pz = pathfind(getenv("PATH"), (char *)pname, "rx");
+ pz = pathfind(getenv("PATH"), (char *)(intptr_t)pname, "rx");
if (pz != NULL)
- pname = (void *)pz;
+ pname = (void *)(intptr_t)pz;
- pp = (char const **)(void **)&(opts->pzProgPath);
- *pp = pname;
+ opts->pzProgPath = pname;
/*
* when comparing long names, these are equivalent
diff --git a/sntp/libopts/load.c b/sntp/libopts/load.c
index 5c29d96ecc9a..065449255022 100644
--- a/sntp/libopts/load.c
+++ b/sntp/libopts/load.c
@@ -225,7 +225,7 @@ add_prog_path(char * buf, int b_sz, char const * fname, char const * prg_path)
if (strchr(prg_path, DIRCH) != NULL)
path = prg_path;
else {
- path = pathfind(getenv("PATH"), (char*)prg_path, "rx");
+ path = pathfind(getenv("PATH"), (char*)(intptr_t)prg_path, "rx");
if (path == NULL)
return false;
diff --git a/sntp/libopts/makeshell.c b/sntp/libopts/makeshell.c
index a0bfcacca655..baef8fcb5f79 100644
--- a/sntp/libopts/makeshell.c
+++ b/sntp/libopts/makeshell.c
@@ -396,13 +396,13 @@ emit_usage(tOptions * opts)
/* Copy the program name into the time/name buffer */
for (;;) {
- if ((*pzPN++ = (char)tolower(*pz++)) == NUL)
+ if ((*pzPN++ = (char)tolower((unsigned char)*pz++)) == NUL)
break;
}
- pp = (char **)(void *)&(opts->pzProgPath);
+ pp = (char **)(void *)(intptr_t)&(opts->pzProgPath);
*pp = tm_nm_buf;
- pp = (char **)(void *)&(opts->pzProgName);
+ pp = (char **)(void *)(intptr_t)&(opts->pzProgName);
*pp = tm_nm_buf;
}
@@ -653,7 +653,7 @@ emit_match_expr(char const * name, tOptDesc * cod, tOptions * opts)
* They must not be the same. They cannot be, because it would
* not compile correctly if they were.
*/
- while (toupper(od->pz_Name[match_ct]) == toupper(name[match_ct]))
+ while (toupper((unsigned char)od->pz_Name[match_ct]) == toupper((unsigned char)name[match_ct]))
match_ct++;
if (match_ct > min_match_ct)
@@ -666,8 +666,8 @@ emit_match_expr(char const * name, tOptDesc * cod, tOptions * opts)
continue;
match_ct = 0;
- while ( toupper(od->pz_DisableName[match_ct])
- == toupper(name[match_ct]))
+ while ( toupper((unsigned char)od->pz_DisableName[match_ct])
+ == toupper((unsigned char)name[match_ct]))
match_ct++;
if (match_ct > min_match_ct)
min_match_ct = match_ct;
@@ -901,11 +901,11 @@ genshelloptUsage(tOptions * opts, int exit_cd)
*/
{
char * pz;
- char ** pp = (char **)(void *)&(optionParseShellOptions->pzProgName);
+ char ** pp = (char **)(void *)(intptr_t)&(optionParseShellOptions->pzProgName);
AGDUPSTR(pz, optionParseShellOptions->pzPROGNAME, "prog name");
*pp = pz;
while (*pz != NUL) {
- *pz = (char)tolower(*pz);
+ *pz = (char)tolower((unsigned char)*pz);
pz++;
}
}
diff --git a/sntp/libopts/nested.c b/sntp/libopts/nested.c
index 0ec8f0880661..96e45530fb47 100644
--- a/sntp/libopts/nested.c
+++ b/sntp/libopts/nested.c
@@ -645,7 +645,7 @@ unload_arg_list(tArgList * arg_list)
char const ** pnew_val = arg_list->apzArgs;
while (ct-- > 0) {
- tOptionValue* new_val = (tOptionValue*)(void*)*(pnew_val++);
+ tOptionValue* new_val = (tOptionValue*)(void*)(intptr_t)*(pnew_val++);
if (new_val->valType == OPARG_TYPE_HIERARCHY)
unload_arg_list(new_val->v.nestVal);
AGFREE(new_val);
@@ -675,7 +675,7 @@ optionUnloadNested(tOptionValue const * opt_val)
unload_arg_list(opt_val->v.nestVal);
- AGFREE((void*)opt_val);
+ AGFREE((void*)(intptr_t)opt_val);
}
/**
@@ -694,8 +694,8 @@ sort_list(tArgList * arg_list)
*/
for (ix = 0; ++ix < lm;) {
int iy = ix-1;
- tOptionValue * new_v = C(tOptionValue *, arg_list->apzArgs[ix]);
- tOptionValue * old_v = C(tOptionValue *, arg_list->apzArgs[iy]);
+ tOptionValue * new_v = C(tOptionValue *, (intptr_t)arg_list->apzArgs[ix]);
+ tOptionValue * old_v = C(tOptionValue *, (intptr_t)arg_list->apzArgs[iy]);
/*
* For as long as the new entry precedes the "old" entry,
@@ -704,7 +704,7 @@ sort_list(tArgList * arg_list)
*/
while (strcmp(old_v->pzName, new_v->pzName) > 0) {
arg_list->apzArgs[iy+1] = (void*)old_v;
- old_v = (tOptionValue*)(void*)(arg_list->apzArgs[--iy]);
+ old_v = (tOptionValue*)(void*)(intptr_t)(arg_list->apzArgs[--iy]);
if (iy < 0)
break;
}
@@ -837,7 +837,7 @@ optionNestedVal(tOptions * opts, tOptDesc * od)
av = arg_list->apzArgs;
while (--ct >= 0) {
- void * p = (void *)*(av++);
+ void * p = (void *)(intptr_t)*(av++);
optionUnloadNested((tOptionValue const *)p);
}
@@ -872,7 +872,7 @@ get_special_char(char const ** ppz, int * ct)
base = 16;
pz++;
}
- retch = (int)strtoul(pz, (char **)&pz, base);
+ retch = (int)strtoul(pz, (char **)(intptr_t)&pz, base);
if (*pz != ';')
return '&';
base = (int)(++pz - *ppz);
diff --git a/sntp/libopts/numeric.c b/sntp/libopts/numeric.c
index 9baba65e7ba9..471cb936e1a9 100644
--- a/sntp/libopts/numeric.c
+++ b/sntp/libopts/numeric.c
@@ -42,7 +42,7 @@
* Show information about a numeric option with range constraints.
=*/
void
-optionShowRange(tOptions * pOpts, tOptDesc * pOD, void * rng_table, int rng_ct)
+optionShowRange(tOptions * pOpts, tOptDesc * pOD, const void * rng_table, int rng_ct)
{
const struct {long const rmin, rmax;} * rng = rng_table;
diff --git a/sntp/libopts/parse-duration.c b/sntp/libopts/parse-duration.c
index ff3fe4228f33..2536a06a00f7 100644
--- a/sntp/libopts/parse-duration.c
+++ b/sntp/libopts/parse-duration.c
@@ -60,14 +60,14 @@ typedef enum {
static unsigned long
str_const_to_ul (cch_t * str, cch_t ** ppz, int base)
{
- return strtoul (str, (char **)ppz, base);
+ return strtoul (str, (char **)(intptr_t)ppz, base);
}
/* Wrapper around strtol that does not require a cast. */
static long
str_const_to_l (cch_t * str, cch_t ** ppz, int base)
{
- return strtol (str, (char **)ppz, base);
+ return strtol (str, (char **)(intptr_t)ppz, base);
}
/* Returns BASE + VAL * SCALE, interpreting BASE = BAD_TIME
diff --git a/sntp/libopts/pgusage.c b/sntp/libopts/pgusage.c
index 80a89a713d47..a385b4d999a8 100644
--- a/sntp/libopts/pgusage.c
+++ b/sntp/libopts/pgusage.c
@@ -88,7 +88,7 @@ mk_pager_cmd(char const * fname)
bfsz = strlen(fname) + strlen(pager) + PAGE_USAGE_FMT_LEN;
res = AGALOC(bfsz, "more cmd");
snprintf(res, bfsz, PAGE_USAGE_FMT, pager, fname);
- AGFREE((void*)fname);
+ AGFREE((void*)(intptr_t)fname);
return res;
}
}
diff --git a/sntp/libopts/reset.c b/sntp/libopts/reset.c
index df81cd718a4e..1e959a1e4ce7 100644
--- a/sntp/libopts/reset.c
+++ b/sntp/libopts/reset.c
@@ -113,7 +113,7 @@ optionResetOpt(tOptions * pOpts, tOptDesc * pOD)
assert(0 == 1);
}
} else {
- succ = opt_find_long(pOpts, (char *)pzArg, &opt_state);
+ succ = opt_find_long(pOpts, (char *)(intptr_t)pzArg, &opt_state);
if (! SUCCESSFUL(succ)) {
fprintf(stderr, zIllOptStr, pOpts->pzProgPath, pzArg);
pOpts->pUsageProc(pOpts, EXIT_FAILURE);
diff --git a/sntp/libopts/save.c b/sntp/libopts/save.c
index 19c4c5b8408d..dd51d6055f76 100644
--- a/sntp/libopts/save.c
+++ b/sntp/libopts/save.c
@@ -183,7 +183,7 @@ find_file_name(tOptions * opts, int * p_free_name)
fprintf(stderr, zsave_warn, opts->pzProgName);
fprintf(stderr, zNoStat, errno, strerror(errno), pzDir);
if (free_dir_name)
- AGFREE((void*)pzDir);
+ AGFREE(pzDir);
return NULL;
}
@@ -223,7 +223,7 @@ find_file_name(tOptions * opts, int * p_free_name)
sprintf(pzPath, "%s/%s", pzDir, opts->pzRcName);
#endif
if (free_dir_name)
- AGFREE((void*)pzDir);
+ AGFREE(pzDir);
pzDir = pzPath;
free_dir_name = 1;
}
@@ -237,7 +237,7 @@ find_file_name(tOptions * opts, int * p_free_name)
fprintf(stderr, zsave_warn, opts->pzProgName);
fprintf(stderr, zNoStat, errno, strerror(errno),
pzDir);
- AGFREE((void*)pzDir);
+ AGFREE(pzDir);
return NULL;
}
@@ -255,7 +255,7 @@ find_file_name(tOptions * opts, int * p_free_name)
if (! S_ISREG(stBuf.st_mode)) {
fprintf(stderr, zsave_warn, opts->pzProgName, pzDir);
if (free_dir_name)
- AGFREE((void*)pzDir);
+ AGFREE(pzDir);
return NULL;
}
@@ -377,7 +377,7 @@ prt_value(FILE * fp, int depth, tOptDesc * pOD, tOptionValue const * ovp)
/*
* set membership strings get allocated
*/
- AGFREE((void*)pOD->optArg.argString);
+ AGFREE(pOD->optArg.argString);
}
}
@@ -453,7 +453,7 @@ prt_val_list(FILE * fp, char const * name, tArgList * al)
if (al == NULL)
return;
opt_ct = al->useCt;
- opt_list = (void **)al->apzArgs;
+ opt_list = (void **)(intptr_t)al->apzArgs;
if (opt_ct <= 0) {
fprintf(fp, OPEN_CLOSE_FMT, name);
@@ -488,7 +488,7 @@ prt_nested(FILE * fp, tOptDesc * p)
return;
opt_ct = al->useCt;
- opt_list = (void **)al->apzArgs;
+ opt_list = (void **)(intptr_t)al->apzArgs;
if (opt_ct <= 0)
return;
@@ -534,12 +534,12 @@ open_sv_file(tOptions * opts)
fprintf(stderr, zsave_warn, opts->pzProgName);
fprintf(stderr, zNoCreat, errno, strerror(errno), pzFName);
if (free_name)
- AGFREE((void*) pzFName );
+ AGFREE(pzFName);
return fp;
}
if (free_name)
- AGFREE((void*)pzFName);
+ AGFREE(pzFName);
}
fputs("# ", fp);
@@ -629,7 +629,7 @@ prt_enum_arg(FILE * fp, tOptDesc * od)
* bit flag values back into a string suitable for printing.
*/
(*(od->pOptProc))(OPTPROC_RETURN_VALNAME, od);
- prt_entry(fp, od, (void*)(od->optArg.argString));
+ prt_entry(fp, od, (void*)(intptr_t)(od->optArg.argString));
od->optArg.argEnum = val;
}
diff --git a/sntp/libopts/tokenize.c b/sntp/libopts/tokenize.c
index 34abf836012b..a0db4cb8072a 100644
--- a/sntp/libopts/tokenize.c
+++ b/sntp/libopts/tokenize.c
@@ -57,7 +57,7 @@ copy_cooked(ch_t** ppDest, char const ** ppSrc)
case NUL: *ppSrc = NULL; return;
case '"': goto done;
case '\\':
- pSrc += ao_string_cook_escape_char((char*)pSrc, (char*)&ch, 0x7F);
+ pSrc += ao_string_cook_escape_char((char*)(intptr_t)pSrc, (char*)(intptr_t)&ch, 0x7F);
if (ch == 0x7F)
break;
/* FALLTHROUGH */
diff --git a/sntp/libopts/usage.c b/sntp/libopts/usage.c
index 206235d7afca..bb33b35ac460 100644
--- a/sntp/libopts/usage.c
+++ b/sntp/libopts/usage.c
@@ -435,7 +435,7 @@ print_one_paragraph(char const * text, bool plain, FILE * fp)
else {
char const * t = optionQuoteString(text, LINE_SPLICE);
fprintf(fp, PUTS_FMT, t);
- AGFREE((void *)t);
+ AGFREE(t);
}
}
@@ -546,7 +546,7 @@ optionPrintParagraphs(char const * text, bool plain, FILE * fp)
buf = scan;
}
}
- AGFREE((void *)text);
+ AGFREE(text);
}
/*=export_func optionUsage
diff --git a/sntp/loc/netbsd b/sntp/loc/netbsd
index e84f7899a1c9..fa79340db23e 100644
--- a/sntp/loc/netbsd
+++ b/sntp/loc/netbsd
@@ -11,4 +11,4 @@ ntpsnmpd,sbin,8
ntpsweep,noinst,8
ntptime,sbin,8
ntptrace,sbin,8
-sntp,bin,1
+sntp,sbin,1
diff --git a/sntp/m4/hms_search_lib.m4 b/sntp/m4/hms_search_lib.m4
index e6dd601403b1..d09ea3b74a75 100644
--- a/sntp/m4/hms_search_lib.m4
+++ b/sntp/m4/hms_search_lib.m4
@@ -25,6 +25,6 @@ AC_DEFUN([HMS_SEARCH_LIBS],
no) ;;
*) $1[]="$ac_cv_search_$2[] $[]$1" ;;
esac
- [$4]],
- [$5],
+ $4],
+ $5,
[$6])])
diff --git a/sntp/m4/ntp_compiler.m4 b/sntp/m4/ntp_compiler.m4
index 2b418662b99c..e4c515f27a2e 100644
--- a/sntp/m4/ntp_compiler.m4
+++ b/sntp/m4/ntp_compiler.m4
@@ -2,6 +2,7 @@ dnl ######################################################################
dnl Common m4sh code for compiler stuff
AC_DEFUN([NTP_COMPILER], [
AC_REQUIRE([AC_PROG_CC_C89])
+AC_REQUIRE([AC_PROG_CC_C99])
CFLAGS_NTP=
CPPFLAGS_NTP=
diff --git a/sntp/m4/ntp_libevent.m4 b/sntp/m4/ntp_libevent.m4
index 5f81ae90576c..54174f05a21a 100644
--- a/sntp/m4/ntp_libevent.m4
+++ b/sntp/m4/ntp_libevent.m4
@@ -1,4 +1,25 @@
-dnl NTP_ENABLE_LOCAL_LIBEVENT -*- Autoconf -*-
+# SYNOPSIS -*- Autoconf -*-
+#
+# NTP_ENABLE_LOCAL_LIBEVENT
+# NTP_LIBEVENT_CHECK([MINVERSION [, DIR]])
+# NTP_LIBEVENT_CHECK_NOBUILD([MINVERSION [, DIR]])
+#
+# DESCRIPTION
+#
+# AUTHOR
+#
+# Harlan Stenn
+#
+# LICENSE
+#
+# This file is Copyright (c) 2014 Network Time Foundation
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice,
+# author attribution and this notice are preserved. This file is offered
+# as-is, without any warranty.
+
+dnl NTP_ENABLE_LOCAL_LIBEVENT
dnl
dnl Provide only the --enable-local-libevent command-line option.
dnl
@@ -29,7 +50,7 @@ dnl If NOBUILD is provided as the 3rd argument, do all of the above,
dnl but DO NOT invoke DIR/configure if we are going to use our bundled
dnl version. This may be the case for nested packages.
dnl
-dnl provide --enable-local-libevent .
+dnl provides: --enable-local-libevent
dnl
dnl Examples:
dnl
diff --git a/sntp/m4/ntp_libntp.m4 b/sntp/m4/ntp_libntp.m4
index 13a621d1ceb7..8842c4a81125 100644
--- a/sntp/m4/ntp_libntp.m4
+++ b/sntp/m4/ntp_libntp.m4
@@ -78,6 +78,12 @@ esac
AC_CHECK_FUNCS([getclock stime timegm strlcpy strlcat])
+# Bug 2713
+LDADD_LIBUTIL=
+AC_SUBST([LDADD_LIBUTIL])
+HMS_SEARCH_LIBS([LDADD_LIBUTIL], [snprintb], [util],
+ [AC_DEFINE([USE_SNPRINTB], 1, [OK to use snprintb()?])])
+
dnl HP-UX 11.31 on HPPA has a net/if.h that can't be compiled with gcc4
dnl due to an incomplete type (a union) mpinfou used in an array. gcc3
dnl compiles it without complaint. The mpinfou union is defined later
diff --git a/sntp/m4/version.m4 b/sntp/m4/version.m4
index 602bcab18571..06f967692061 100644
--- a/sntp/m4/version.m4
+++ b/sntp/m4/version.m4
@@ -1 +1 @@
-m4_define([VERSION_NUMBER],[4.2.8])
+m4_define([VERSION_NUMBER],[4.2.8p1])
diff --git a/sntp/main.c b/sntp/main.c
index d60710868f2d..c271c8c457f5 100644
--- a/sntp/main.c
+++ b/sntp/main.c
@@ -659,7 +659,7 @@ xmt(
sockaddr_u * dst = &spkt->addr;
struct timeval tv_xmt;
struct pkt x_pkt;
- int pkt_len;
+ size_t pkt_len;
int sent;
if (0 != gettimeofday(&tv_xmt, NULL)) {
@@ -1248,7 +1248,7 @@ handle_pkt(
if (synch_distance > 0.) {
cnt = snprintf(disptxt, sizeof(disptxt),
" +/- %f", synch_distance);
- if (cnt >= sizeof(disptxt))
+ if ((size_t)cnt >= sizeof(disptxt))
snprintf(disptxt, sizeof(disptxt),
"ERROR %d >= %d", cnt,
(int)sizeof(disptxt));
@@ -1392,7 +1392,7 @@ set_li_vn_mode (
leap = 3;
}
- if (version < 0 || version > 7) {
+ if ((unsigned char)version > 7) {
msyslog(LOG_DEBUG, "set_li_vn_mode: version < 0 or > 7, using 4");
version = 4;
}
@@ -1545,7 +1545,7 @@ gettimeofday_cached(
diff = sub_tval(systemt, latest);
if (debug > 1)
printf("system minus cached %+ld.%06ld\n",
- (long)diff.tv_sec, diff.tv_usec);
+ (long)diff.tv_sec, (long)diff.tv_usec);
if (0 != cgt_rc || labs((long)diff.tv_sec) < 3600) {
/*
* Either use_monotonic == 0, or this libevent
@@ -1557,13 +1557,14 @@ gettimeofday_cached(
diff = sub_tval(latest, mono);
if (debug > 1)
printf("cached minus monotonic %+ld.%06ld\n",
- (long)diff.tv_sec, diff.tv_usec);
+ (long)diff.tv_sec, (long)diff.tv_usec);
if (labs((long)diff.tv_sec) < 3600) {
/* older libevent2 using monotonic */
offset = sub_tval(systemt, mono);
TRACE(1, ("%s: Offsetting libevent CLOCK_MONOTONIC times by %+ld.%06ld\n",
"gettimeofday_cached",
- (long)offset.tv_sec, offset.tv_usec));
+ (long)offset.tv_sec,
+ (long)offset.tv_usec));
}
}
offset_ready = TRUE;
diff --git a/sntp/networking.c b/sntp/networking.c
index 75c2f7140143..bef7352d3a63 100644
--- a/sntp/networking.c
+++ b/sntp/networking.c
@@ -80,7 +80,7 @@ skip_efields(
while ((tail - head) > 6) {
nlen = ntohl(*head++) & 0xffff;
nlen = (nlen + 3) >> 2;
- if (nlen > (tail - head) || nlen < 4)
+ if (nlen > (u_int)(tail - head) || nlen < 4)
return NULL; /* Blooper! Inconsistent! */
head += nlen;
}
@@ -129,8 +129,7 @@ process_pkt (
* extension field is present, so we subtract the length of the
* field and go around again.
*/
- if (pkt_len < LEN_PKT_NOMAC || (pkt_len & 3) != 0) {
-unusable:
+ if (pkt_len < (int)LEN_PKT_NOMAC || (pkt_len & 3) != 0) {
msyslog(LOG_ERR,
"%s: Incredible packet length: %d. Discarding.",
func_name, pkt_len);
@@ -139,8 +138,12 @@ unusable:
/* Note: pkt_len must be a multiple of 4 at this point! */
packet_end = (u_int32*)((char*)rpkt + pkt_len);
exten_end = skip_efields(rpkt->exten, packet_end);
- if (NULL == exten_end)
- goto unusable;
+ if (NULL == exten_end) {
+ msyslog(LOG_ERR,
+ "%s: Missing extension field. Discarding.",
+ func_name);
+ return PACKET_UNUSEABLE;
+ }
/* get size of MAC in cells; can be zero */
exten_len = (u_int)(packet_end - exten_end);
@@ -156,7 +159,10 @@ unusable:
break;
case 3: /* key ID + 3DES MAC -- unsupported! */
- goto unusable;
+ msyslog(LOG_ERR,
+ "%s: Key ID + 3DES MAC is unsupported. Discarding.",
+ func_name);
+ return PACKET_UNUSEABLE;
case 5: /* key ID + MD5 MAC */
case 6: /* key ID + SHA MAC */
@@ -190,7 +196,10 @@ unusable:
break;
default:
- goto unusable;
+ msyslog(LOG_ERR,
+ "%s: Unexpected extension length: %d. Discarding.",
+ func_name, exten_len);
+ return PACKET_UNUSEABLE;
}
switch (is_authentic) {
diff --git a/sntp/scripts/Makefile.in b/sntp/scripts/Makefile.in
index 6dccb2d54519..26c3591bfa33 100644
--- a/sntp/scripts/Makefile.in
+++ b/sntp/scripts/Makefile.in
@@ -130,6 +130,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
LDFLAGS_NTP = @LDFLAGS_NTP@
diff --git a/sntp/scripts/cvo.sh b/sntp/scripts/cvo.sh
index a8d00ef6cb4f..ecd80922301f 100755
--- a/sntp/scripts/cvo.sh
+++ b/sntp/scripts/cvo.sh
@@ -45,7 +45,13 @@ case "$#" in
set `cat /etc/redhat-release`
case "$1" in
CentOS)
- CVO_OS=centos$3
+ case "$2" in
+ Linux)
+ CVO_OS=centos$4
+ ;;
+ *) CVO_OS=centos$3
+ ;;
+ esac
;;
Fedora)
CVO_OS=fedora$3
diff --git a/sntp/sntp-opts.c b/sntp/sntp-opts.c
index 9e362d1a90f8..a9e36457ad13 100644
--- a/sntp/sntp-opts.c
+++ b/sntp/sntp-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (sntp-opts.c)
*
- * It has been AutoGen-ed December 19, 2014 at 07:51:01 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:33:35 AM by AutoGen 5.18.5pre4
* From the definitions sntp-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The sntp program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -51,7 +51,7 @@ extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (sntp_opt_strs+0)
-#define zLicenseDescrip (sntp_opt_strs+310)
+#define zLicenseDescrip (sntp_opt_strs+340)
/*
* global included definitions
@@ -69,111 +69,112 @@ extern FILE * option_usage_fp;
/**
* static const strings for sntp options
*/
-static char const sntp_opt_strs[2487] =
-/* 0 */ "sntp 4.2.8\n"
- "Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n"
+static char const sntp_opt_strs[2549] =
+/* 0 */ "sntp 4.2.8p1\n"
+ "Copyright (C) 1992-2015 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"
-/* 310 */ "Permission to use, copy, modify, and distribute this software and its\n"
+/* 340 */ "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 makes no\n"
- "representations about the suitability this software for any purpose. It is\n"
- "provided \"as is\" without express or implied warranty.\n\0"
-/* 950 */ "Force IPv4 DNS name resolution\0"
-/* 981 */ "IPV4\0"
-/* 986 */ "ipv4\0"
-/* 991 */ "Force IPv6 DNS name resolution\0"
-/* 1022 */ "IPV6\0"
-/* 1027 */ "ipv6\0"
-/* 1032 */ "Enable authentication with the key auth-keynumber\0"
-/* 1082 */ "AUTHENTICATION\0"
-/* 1097 */ "authentication\0"
-/* 1112 */ "Listen to the address specified for broadcast time sync\0"
-/* 1168 */ "BROADCAST\0"
-/* 1178 */ "broadcast\0"
-/* 1188 */ "Concurrently query all IPs returned for host-name\0"
-/* 1238 */ "CONCURRENT\0"
-/* 1249 */ "concurrent\0"
-/* 1260 */ "Increase debug verbosity level\0"
-/* 1291 */ "DEBUG_LEVEL\0"
-/* 1303 */ "debug-level\0"
-/* 1315 */ "Set the debug verbosity level\0"
-/* 1345 */ "SET_DEBUG_LEVEL\0"
-/* 1361 */ "set-debug-level\0"
-/* 1377 */ "The gap (in milliseconds) between time requests\0"
-/* 1425 */ "GAP\0"
-/* 1429 */ "gap\0"
-/* 1433 */ "KoD history filename\0"
-/* 1454 */ "KOD\0"
-/* 1458 */ "kod\0"
-/* 1462 */ "/var/db/ntp-kod\0"
-/* 1478 */ "Look in this file for the key specified with -a\0"
-/* 1526 */ "KEYFILE\0"
-/* 1534 */ "keyfile\0"
-/* 1542 */ "Log to specified logfile\0"
-/* 1567 */ "LOGFILE\0"
-/* 1575 */ "logfile\0"
-/* 1583 */ "Adjustments less than steplimit msec will be slewed\0"
-/* 1635 */ "STEPLIMIT\0"
-/* 1645 */ "steplimit\0"
-/* 1655 */ "Send int as our NTP protocol version\0"
-/* 1692 */ "NTPVERSION\0"
-/* 1703 */ "ntpversion\0"
-/* 1714 */ "Use the NTP Reserved Port (port 123)\0"
-/* 1751 */ "USERESERVEDPORT\0"
-/* 1767 */ "usereservedport\0"
-/* 1783 */ "OK to 'step' the time with settimeofday(2)\0"
-/* 1826 */ "STEP\0"
-/* 1831 */ "step\0"
-/* 1836 */ "OK to 'slew' the time with adjtime(2)\0"
-/* 1874 */ "SLEW\0"
-/* 1879 */ "slew\0"
-/* 1884 */ "The number of seconds to wait for responses\0"
-/* 1928 */ "TIMEOUT\0"
-/* 1936 */ "timeout\0"
-/* 1944 */ "Wait for pending replies (if not setting the time)\0"
-/* 1995 */ "WAIT\0"
-/* 2000 */ "no-wait\0"
-/* 2008 */ "no\0"
-/* 2011 */ "display extended usage information and exit\0"
-/* 2055 */ "help\0"
-/* 2060 */ "extended usage information passed thru pager\0"
-/* 2105 */ "more-help\0"
-/* 2115 */ "output version information and exit\0"
-/* 2151 */ "version\0"
-/* 2159 */ "save the option state to a config file\0"
-/* 2198 */ "save-opts\0"
-/* 2208 */ "load options from a config file\0"
-/* 2240 */ "LOAD_OPTS\0"
-/* 2250 */ "no-load-opts\0"
-/* 2263 */ "SNTP\0"
-/* 2268 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8\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"
+/* 1008 */ "Force IPv4 DNS name resolution\0"
+/* 1039 */ "IPV4\0"
+/* 1044 */ "ipv4\0"
+/* 1049 */ "Force IPv6 DNS name resolution\0"
+/* 1080 */ "IPV6\0"
+/* 1085 */ "ipv6\0"
+/* 1090 */ "Enable authentication with the key auth-keynumber\0"
+/* 1140 */ "AUTHENTICATION\0"
+/* 1155 */ "authentication\0"
+/* 1170 */ "Listen to the address specified for broadcast time sync\0"
+/* 1226 */ "BROADCAST\0"
+/* 1236 */ "broadcast\0"
+/* 1246 */ "Concurrently query all IPs returned for host-name\0"
+/* 1296 */ "CONCURRENT\0"
+/* 1307 */ "concurrent\0"
+/* 1318 */ "Increase debug verbosity level\0"
+/* 1349 */ "DEBUG_LEVEL\0"
+/* 1361 */ "debug-level\0"
+/* 1373 */ "Set the debug verbosity level\0"
+/* 1403 */ "SET_DEBUG_LEVEL\0"
+/* 1419 */ "set-debug-level\0"
+/* 1435 */ "The gap (in milliseconds) between time requests\0"
+/* 1483 */ "GAP\0"
+/* 1487 */ "gap\0"
+/* 1491 */ "KoD history filename\0"
+/* 1512 */ "KOD\0"
+/* 1516 */ "kod\0"
+/* 1520 */ "/var/db/ntp-kod\0"
+/* 1536 */ "Look in this file for the key specified with -a\0"
+/* 1584 */ "KEYFILE\0"
+/* 1592 */ "keyfile\0"
+/* 1600 */ "Log to specified logfile\0"
+/* 1625 */ "LOGFILE\0"
+/* 1633 */ "logfile\0"
+/* 1641 */ "Adjustments less than steplimit msec will be slewed\0"
+/* 1693 */ "STEPLIMIT\0"
+/* 1703 */ "steplimit\0"
+/* 1713 */ "Send int as our NTP protocol version\0"
+/* 1750 */ "NTPVERSION\0"
+/* 1761 */ "ntpversion\0"
+/* 1772 */ "Use the NTP Reserved Port (port 123)\0"
+/* 1809 */ "USERESERVEDPORT\0"
+/* 1825 */ "usereservedport\0"
+/* 1841 */ "OK to 'step' the time with settimeofday(2)\0"
+/* 1884 */ "STEP\0"
+/* 1889 */ "step\0"
+/* 1894 */ "OK to 'slew' the time with adjtime(2)\0"
+/* 1932 */ "SLEW\0"
+/* 1937 */ "slew\0"
+/* 1942 */ "The number of seconds to wait for responses\0"
+/* 1986 */ "TIMEOUT\0"
+/* 1994 */ "timeout\0"
+/* 2002 */ "Wait for pending replies (if not setting the time)\0"
+/* 2053 */ "WAIT\0"
+/* 2058 */ "no-wait\0"
+/* 2066 */ "no\0"
+/* 2069 */ "display extended usage information and exit\0"
+/* 2113 */ "help\0"
+/* 2118 */ "extended usage information passed thru pager\0"
+/* 2163 */ "more-help\0"
+/* 2173 */ "output version information and exit\0"
+/* 2209 */ "version\0"
+/* 2217 */ "save the option state to a config file\0"
+/* 2256 */ "save-opts\0"
+/* 2266 */ "load options from a config file\0"
+/* 2298 */ "LOAD_OPTS\0"
+/* 2308 */ "no-load-opts\0"
+/* 2321 */ "SNTP\0"
+/* 2326 */ "sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p1\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n"
"\t\t[ hostname-or-IP ...]\n\0"
-/* 2425 */ "$HOME\0"
-/* 2431 */ ".\0"
-/* 2433 */ ".ntprc\0"
-/* 2440 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 2474 */ "\n\0"
-/* 2476 */ "sntp 4.2.8";
+/* 2485 */ "$HOME\0"
+/* 2491 */ ".\0"
+/* 2493 */ ".ntprc\0"
+/* 2500 */ "http://bugs.ntp.org, bugs@ntp.org\0"
+/* 2534 */ "\n\0"
+/* 2536 */ "sntp 4.2.8p1";
/**
* ipv4 option description with
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv4 option */
-#define IPV4_DESC (sntp_opt_strs+950)
+#define IPV4_DESC (sntp_opt_strs+1008)
/** Upper-cased name for the ipv4 option */
-#define IPV4_NAME (sntp_opt_strs+981)
+#define IPV4_NAME (sntp_opt_strs+1039)
/** Name string for the ipv4 option */
-#define IPV4_name (sntp_opt_strs+986)
+#define IPV4_name (sntp_opt_strs+1044)
/** Other options that appear in conjunction with the ipv4 option */
static int const aIpv4CantList[] = {
INDEX_OPT_IPV6, NO_EQUIVALENT };
@@ -185,11 +186,11 @@ static int const aIpv4CantList[] = {
* "Must also have options" and "Incompatible options":
*/
/** Descriptive text for the ipv6 option */
-#define IPV6_DESC (sntp_opt_strs+991)
+#define IPV6_DESC (sntp_opt_strs+1049)
/** Upper-cased name for the ipv6 option */
-#define IPV6_NAME (sntp_opt_strs+1022)
+#define IPV6_NAME (sntp_opt_strs+1080)
/** Name string for the ipv6 option */
-#define IPV6_name (sntp_opt_strs+1027)
+#define IPV6_name (sntp_opt_strs+1085)
/** Other options that appear in conjunction with the ipv6 option */
static int const aIpv6CantList[] = {
INDEX_OPT_IPV4, NO_EQUIVALENT };
@@ -200,11 +201,11 @@ static int const aIpv6CantList[] = {
* authentication option description:
*/
/** Descriptive text for the authentication option */
-#define AUTHENTICATION_DESC (sntp_opt_strs+1032)
+#define AUTHENTICATION_DESC (sntp_opt_strs+1090)
/** Upper-cased name for the authentication option */
-#define AUTHENTICATION_NAME (sntp_opt_strs+1082)
+#define AUTHENTICATION_NAME (sntp_opt_strs+1140)
/** Name string for the authentication option */
-#define AUTHENTICATION_name (sntp_opt_strs+1097)
+#define AUTHENTICATION_name (sntp_opt_strs+1155)
/** Compiled in flag settings for the authentication option */
#define AUTHENTICATION_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -213,11 +214,11 @@ static int const aIpv6CantList[] = {
* broadcast option description:
*/
/** Descriptive text for the broadcast option */
-#define BROADCAST_DESC (sntp_opt_strs+1112)
+#define BROADCAST_DESC (sntp_opt_strs+1170)
/** Upper-cased name for the broadcast option */
-#define BROADCAST_NAME (sntp_opt_strs+1168)
+#define BROADCAST_NAME (sntp_opt_strs+1226)
/** Name string for the broadcast option */
-#define BROADCAST_name (sntp_opt_strs+1178)
+#define BROADCAST_name (sntp_opt_strs+1236)
/** Compiled in flag settings for the broadcast option */
#define BROADCAST_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -226,11 +227,11 @@ static int const aIpv6CantList[] = {
* concurrent option description:
*/
/** Descriptive text for the concurrent option */
-#define CONCURRENT_DESC (sntp_opt_strs+1188)
+#define CONCURRENT_DESC (sntp_opt_strs+1246)
/** Upper-cased name for the concurrent option */
-#define CONCURRENT_NAME (sntp_opt_strs+1238)
+#define CONCURRENT_NAME (sntp_opt_strs+1296)
/** Name string for the concurrent option */
-#define CONCURRENT_name (sntp_opt_strs+1249)
+#define CONCURRENT_name (sntp_opt_strs+1307)
/** Compiled in flag settings for the concurrent option */
#define CONCURRENT_FLAGS (OPTST_DISABLED | OPTST_STACKED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -239,11 +240,11 @@ static int const aIpv6CantList[] = {
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
-#define DEBUG_LEVEL_DESC (sntp_opt_strs+1260)
+#define DEBUG_LEVEL_DESC (sntp_opt_strs+1318)
/** Upper-cased name for the debug-level option */
-#define DEBUG_LEVEL_NAME (sntp_opt_strs+1291)
+#define DEBUG_LEVEL_NAME (sntp_opt_strs+1349)
/** Name string for the debug-level option */
-#define DEBUG_LEVEL_name (sntp_opt_strs+1303)
+#define DEBUG_LEVEL_name (sntp_opt_strs+1361)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
@@ -251,11 +252,11 @@ static int const aIpv6CantList[] = {
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
-#define SET_DEBUG_LEVEL_DESC (sntp_opt_strs+1315)
+#define SET_DEBUG_LEVEL_DESC (sntp_opt_strs+1373)
/** Upper-cased name for the set-debug-level option */
-#define SET_DEBUG_LEVEL_NAME (sntp_opt_strs+1345)
+#define SET_DEBUG_LEVEL_NAME (sntp_opt_strs+1403)
/** Name string for the set-debug-level option */
-#define SET_DEBUG_LEVEL_name (sntp_opt_strs+1361)
+#define SET_DEBUG_LEVEL_name (sntp_opt_strs+1419)
/** Compiled in flag settings for the set-debug-level option */
#define SET_DEBUG_LEVEL_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -264,11 +265,11 @@ static int const aIpv6CantList[] = {
* gap option description:
*/
/** Descriptive text for the gap option */
-#define GAP_DESC (sntp_opt_strs+1377)
+#define GAP_DESC (sntp_opt_strs+1435)
/** Upper-cased name for the gap option */
-#define GAP_NAME (sntp_opt_strs+1425)
+#define GAP_NAME (sntp_opt_strs+1483)
/** Name string for the gap option */
-#define GAP_name (sntp_opt_strs+1429)
+#define GAP_name (sntp_opt_strs+1487)
/** 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 */
@@ -279,13 +280,13 @@ static int const aIpv6CantList[] = {
* kod option description:
*/
/** Descriptive text for the kod option */
-#define KOD_DESC (sntp_opt_strs+1433)
+#define KOD_DESC (sntp_opt_strs+1491)
/** Upper-cased name for the kod option */
-#define KOD_NAME (sntp_opt_strs+1454)
+#define KOD_NAME (sntp_opt_strs+1512)
/** Name string for the kod option */
-#define KOD_name (sntp_opt_strs+1458)
+#define KOD_name (sntp_opt_strs+1516)
/** The compiled in default value for the kod option argument */
-#define KOD_DFT_ARG (sntp_opt_strs+1462)
+#define KOD_DFT_ARG (sntp_opt_strs+1520)
/** Compiled in flag settings for the kod option */
#define KOD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -294,11 +295,11 @@ static int const aIpv6CantList[] = {
* keyfile option description:
*/
/** Descriptive text for the keyfile option */
-#define KEYFILE_DESC (sntp_opt_strs+1478)
+#define KEYFILE_DESC (sntp_opt_strs+1536)
/** Upper-cased name for the keyfile option */
-#define KEYFILE_NAME (sntp_opt_strs+1526)
+#define KEYFILE_NAME (sntp_opt_strs+1584)
/** Name string for the keyfile option */
-#define KEYFILE_name (sntp_opt_strs+1534)
+#define KEYFILE_name (sntp_opt_strs+1592)
/** Compiled in flag settings for the keyfile option */
#define KEYFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -307,11 +308,11 @@ static int const aIpv6CantList[] = {
* logfile option description:
*/
/** Descriptive text for the logfile option */
-#define LOGFILE_DESC (sntp_opt_strs+1542)
+#define LOGFILE_DESC (sntp_opt_strs+1600)
/** Upper-cased name for the logfile option */
-#define LOGFILE_NAME (sntp_opt_strs+1567)
+#define LOGFILE_NAME (sntp_opt_strs+1625)
/** Name string for the logfile option */
-#define LOGFILE_name (sntp_opt_strs+1575)
+#define LOGFILE_name (sntp_opt_strs+1633)
/** Compiled in flag settings for the logfile option */
#define LOGFILE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_FILE))
@@ -320,11 +321,11 @@ static int const aIpv6CantList[] = {
* steplimit option description:
*/
/** Descriptive text for the steplimit option */
-#define STEPLIMIT_DESC (sntp_opt_strs+1583)
+#define STEPLIMIT_DESC (sntp_opt_strs+1641)
/** Upper-cased name for the steplimit option */
-#define STEPLIMIT_NAME (sntp_opt_strs+1635)
+#define STEPLIMIT_NAME (sntp_opt_strs+1693)
/** Name string for the steplimit option */
-#define STEPLIMIT_name (sntp_opt_strs+1645)
+#define STEPLIMIT_name (sntp_opt_strs+1703)
/** Compiled in flag settings for the steplimit option */
#define STEPLIMIT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -333,11 +334,11 @@ static int const aIpv6CantList[] = {
* ntpversion option description:
*/
/** Descriptive text for the ntpversion option */
-#define NTPVERSION_DESC (sntp_opt_strs+1655)
+#define NTPVERSION_DESC (sntp_opt_strs+1713)
/** Upper-cased name for the ntpversion option */
-#define NTPVERSION_NAME (sntp_opt_strs+1692)
+#define NTPVERSION_NAME (sntp_opt_strs+1750)
/** Name string for the ntpversion option */
-#define NTPVERSION_name (sntp_opt_strs+1703)
+#define NTPVERSION_name (sntp_opt_strs+1761)
/** 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 */
@@ -348,11 +349,11 @@ static int const aIpv6CantList[] = {
* usereservedport option description:
*/
/** Descriptive text for the usereservedport option */
-#define USERESERVEDPORT_DESC (sntp_opt_strs+1714)
+#define USERESERVEDPORT_DESC (sntp_opt_strs+1772)
/** Upper-cased name for the usereservedport option */
-#define USERESERVEDPORT_NAME (sntp_opt_strs+1751)
+#define USERESERVEDPORT_NAME (sntp_opt_strs+1809)
/** Name string for the usereservedport option */
-#define USERESERVEDPORT_name (sntp_opt_strs+1767)
+#define USERESERVEDPORT_name (sntp_opt_strs+1825)
/** Compiled in flag settings for the usereservedport option */
#define USERESERVEDPORT_FLAGS (OPTST_DISABLED)
@@ -360,11 +361,11 @@ static int const aIpv6CantList[] = {
* step option description:
*/
/** Descriptive text for the step option */
-#define STEP_DESC (sntp_opt_strs+1783)
+#define STEP_DESC (sntp_opt_strs+1841)
/** Upper-cased name for the step option */
-#define STEP_NAME (sntp_opt_strs+1826)
+#define STEP_NAME (sntp_opt_strs+1884)
/** Name string for the step option */
-#define STEP_name (sntp_opt_strs+1831)
+#define STEP_name (sntp_opt_strs+1889)
/** Compiled in flag settings for the step option */
#define STEP_FLAGS (OPTST_DISABLED)
@@ -372,11 +373,11 @@ static int const aIpv6CantList[] = {
* slew option description:
*/
/** Descriptive text for the slew option */
-#define SLEW_DESC (sntp_opt_strs+1836)
+#define SLEW_DESC (sntp_opt_strs+1894)
/** Upper-cased name for the slew option */
-#define SLEW_NAME (sntp_opt_strs+1874)
+#define SLEW_NAME (sntp_opt_strs+1932)
/** Name string for the slew option */
-#define SLEW_name (sntp_opt_strs+1879)
+#define SLEW_name (sntp_opt_strs+1937)
/** Compiled in flag settings for the slew option */
#define SLEW_FLAGS (OPTST_DISABLED)
@@ -384,11 +385,11 @@ static int const aIpv6CantList[] = {
* timeout option description:
*/
/** Descriptive text for the timeout option */
-#define TIMEOUT_DESC (sntp_opt_strs+1884)
+#define TIMEOUT_DESC (sntp_opt_strs+1942)
/** Upper-cased name for the timeout option */
-#define TIMEOUT_NAME (sntp_opt_strs+1928)
+#define TIMEOUT_NAME (sntp_opt_strs+1986)
/** Name string for the timeout option */
-#define TIMEOUT_name (sntp_opt_strs+1936)
+#define TIMEOUT_name (sntp_opt_strs+1994)
/** 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 */
@@ -399,13 +400,13 @@ static int const aIpv6CantList[] = {
* wait option description:
*/
/** Descriptive text for the wait option */
-#define WAIT_DESC (sntp_opt_strs+1944)
+#define WAIT_DESC (sntp_opt_strs+2002)
/** Upper-cased name for the wait option */
-#define WAIT_NAME (sntp_opt_strs+1995)
+#define WAIT_NAME (sntp_opt_strs+2053)
/** disablement name for the wait option */
-#define NOT_WAIT_name (sntp_opt_strs+2000)
+#define NOT_WAIT_name (sntp_opt_strs+2058)
/** disablement prefix for the wait option */
-#define NOT_WAIT_PFX (sntp_opt_strs+2008)
+#define NOT_WAIT_PFX (sntp_opt_strs+2066)
/** Name string for the wait option */
#define WAIT_name (NOT_WAIT_name + 3)
/** Compiled in flag settings for the wait option */
@@ -414,11 +415,11 @@ static int const aIpv6CantList[] = {
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (sntp_opt_strs+2011)
-#define HELP_name (sntp_opt_strs+2055)
+#define HELP_DESC (sntp_opt_strs+2069)
+#define HELP_name (sntp_opt_strs+2113)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (sntp_opt_strs+2060)
-#define MORE_HELP_name (sntp_opt_strs+2105)
+#define MORE_HELP_DESC (sntp_opt_strs+2118)
+#define MORE_HELP_name (sntp_opt_strs+2163)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -431,14 +432,14 @@ static int const aIpv6CantList[] = {
# define VER_FLAGS (OPTST_SET_ARGTYPE(OPARG_TYPE_STRING) | \
OPTST_ARG_OPTIONAL | OPTST_IMM | OPTST_NO_INIT)
#endif
-#define VER_DESC (sntp_opt_strs+2115)
-#define VER_name (sntp_opt_strs+2151)
-#define SAVE_OPTS_DESC (sntp_opt_strs+2159)
-#define SAVE_OPTS_name (sntp_opt_strs+2198)
-#define LOAD_OPTS_DESC (sntp_opt_strs+2208)
-#define LOAD_OPTS_NAME (sntp_opt_strs+2240)
-#define NO_LOAD_OPTS_name (sntp_opt_strs+2250)
-#define LOAD_OPTS_pfx (sntp_opt_strs+2008)
+#define VER_DESC (sntp_opt_strs+2173)
+#define VER_name (sntp_opt_strs+2209)
+#define SAVE_OPTS_DESC (sntp_opt_strs+2217)
+#define SAVE_OPTS_name (sntp_opt_strs+2256)
+#define LOAD_OPTS_DESC (sntp_opt_strs+2266)
+#define LOAD_OPTS_NAME (sntp_opt_strs+2298)
+#define NO_LOAD_OPTS_name (sntp_opt_strs+2308)
+#define LOAD_OPTS_pfx (sntp_opt_strs+2066)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
@@ -744,24 +745,24 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of sntp. */
-#define zPROGNAME (sntp_opt_strs+2263)
+#define zPROGNAME (sntp_opt_strs+2321)
/** Reference to the title line for sntp usage. */
-#define zUsageTitle (sntp_opt_strs+2268)
+#define zUsageTitle (sntp_opt_strs+2326)
/** sntp configuration file name. */
-#define zRcName (sntp_opt_strs+2433)
+#define zRcName (sntp_opt_strs+2493)
/** Directories to search for sntp config files. */
static char const * const apzHomeList[3] = {
- sntp_opt_strs+2425,
- sntp_opt_strs+2431,
+ sntp_opt_strs+2485,
+ sntp_opt_strs+2491,
NULL };
/** The sntp program bug email address. */
-#define zBugsAddr (sntp_opt_strs+2440)
+#define zBugsAddr (sntp_opt_strs+2500)
/** Clarification/explanation of what sntp does. */
-#define zExplain (sntp_opt_strs+2474)
+#define zExplain (sntp_opt_strs+2534)
/** Extra detail explaining what sntp does. */
#define zDetail (NULL)
/** The full version string for sntp. */
-#define zFullVersion (sntp_opt_strs+2476)
+#define zFullVersion (sntp_opt_strs+2536)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -904,7 +905,9 @@ doOptLogfile(tOptions* pOptions, tOptDesc* pOptDesc)
* 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)}.
+ * 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.
*/
@@ -1170,8 +1173,8 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via sntpOptions.pzCopyright */
- puts(_("sntp 4.2.8\n\
-Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n\
+ puts(_("sntp 4.2.8p1\n\
+Copyright (C) 1992-2015 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"));
@@ -1185,9 +1188,10 @@ 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 makes no\n\
-representations about the suitability this software for any purpose. It is\n\
-provided \"as is\" without express or implied warranty.\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"));
@@ -1259,7 +1263,7 @@ provided \"as is\" without express or implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via sntpOptions.pzUsageTitle */
- puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8\n\
+ puts(_("sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p1\n\
Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
\t\t[ hostname-or-IP ...]\n"));
@@ -1267,7 +1271,7 @@ Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]... \\\n\
puts(_("\n"));
/* referenced via sntpOptions.pzFullVersion */
- puts(_("sntp 4.2.8"));
+ puts(_("sntp 4.2.8p1"));
/* referenced via sntpOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/sntp/sntp-opts.def b/sntp/sntp-opts.def
index c32f5e51e47b..c94d5e96e55b 100644
--- a/sntp/sntp-opts.def
+++ b/sntp/sntp-opts.def
@@ -157,7 +157,9 @@ flag = {
doc = <<- _EndOfDoc_
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)}.
+ 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.
_EndOfDoc_;
};
@@ -292,14 +294,27 @@ doc-section = {
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 -a ntpserver.somewhere"
+.It Li "sntp -Ss -M 128 ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
-.Ic "sntp -a"
-will reset the local clock from a synchronized specified server,
+.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
diff --git a/sntp/sntp-opts.h b/sntp/sntp-opts.h
index a904e18cd0b2..d0407aa8d3d7 100644
--- a/sntp/sntp-opts.h
+++ b/sntp/sntp-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (sntp-opts.h)
*
- * It has been AutoGen-ed December 19, 2014 at 07:51:00 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:33:34 AM by AutoGen 5.18.5pre4
* From the definitions sntp-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The sntp program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -91,9 +91,9 @@ typedef enum {
/** count of all options for sntp */
#define OPTION_CT 23
/** sntp version */
-#define SNTP_VERSION "4.2.8"
+#define SNTP_VERSION "4.2.8p1"
/** Full sntp version text */
-#define SNTP_FULL_VERSION "sntp 4.2.8"
+#define SNTP_FULL_VERSION "sntp 4.2.8p1"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/sntp/sntp.1sntpman b/sntp/sntp.1sntpman
index 3d7fa7b00497..36bdfbd42c9f 100644
--- a/sntp/sntp.1sntpman
+++ b/sntp/sntp.1sntpman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH sntp 1sntpman "19 Dec 2014" "4.2.8" "User Commands"
+.TH sntp 1sntpman "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4dayXk/ag-feaqWk)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-apayaT/ag-zpaq_S)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:51:32 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:34:13 AM by AutoGen 5.18.5pre4
.\" From the definitions sntp-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -188,7 +188,9 @@ greater than or equal to 0
.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.
+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.
@@ -289,14 +291,28 @@ 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 \-a ntpserver.somewhere\f[]
+.NOP \f[C]sntp \-Ss \-M 128 ntpserver.somewhere\f[]
With suitable privilege,
run as a command
or from a
\fCcron\fR(8)\f[]
job,
-\f\*[B-Font]sntp \-a\f[]
-will reset the local clock from a synchronized specified server,
+\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\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\fR(1ntpdatemdoc)\f[],
or
@@ -331,7 +347,7 @@ it to autogen-users@lists.sourceforge.net. Thank you.
.NOP "Dave Hart"
.br
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/sntp/sntp.1sntpmdoc b/sntp/sntp.1sntpmdoc
index b5f343c686c0..26444f5aff2e 100644
--- a/sntp/sntp.1sntpmdoc
+++ b/sntp/sntp.1sntpmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt SNTP 1sntpmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:51:38 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:34:20 AM by AutoGen 5.18.5pre4
.\" From the definitions sntp-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -162,7 +162,9 @@ greater than or equal to 0
.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.
+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.
@@ -251,14 +253,27 @@ is searched for within those directories.
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 \-a ntpserver.somewhere"
+.It Li "sntp \-Ss \-M 128 ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
-.Ic "sntp \-a"
-will reset the local clock from a synchronized specified server,
+.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
@@ -287,7 +302,7 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.An "Harlan Stenn"
.An "Dave Hart"
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/sntp/sntp.html b/sntp/sntp.html
index 36d6073187e5..cac641afb391 100644
--- a/sntp/sntp.html
+++ b/sntp/sntp.html
@@ -36,7 +36,7 @@ display the time offset of the system clock relative to the server
clock. Run as root, it can correct the system clock to this offset as
well. It can be run as an interactive command or from a cron job.
- <p>This document applies to version 4.2.8 of <code>sntp</code>.
+ <p>This document applies to version 4.2.8p1 of <code>sntp</code>.
<p>The program implements the SNTP protocol as defined by RFC 5905, the NTPv4
IETF specification.
@@ -175,7 +175,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8
+<pre class="example">sntp - standard Simple Network Time Protocol client program - Ver. 4.2.8p1
Usage: sntp [ -&lt;flag&gt; [&lt;val&gt;] | --&lt;name&gt;[{=| }&lt;val&gt;] ]... \
[ hostname-or-IP ...]
Flg Arg Option-Name Description
@@ -417,7 +417,9 @@ This is the &ldquo;adjustments less than <var>steplimit</var> msec will be slewe
This option takes a number argument.
If the time adjustment is less than <span class="file">steplimit</span> milliseconds,
slew the amount using <span class="command">adjtime(2)</span>. Otherwise, step the
-correction using <span class="command">settimeofday(2)</span>.
+correction using <span class="command">settimeofday(2)</span>. The default value is 0,
+which means all adjustments will be stepped. This is a feature, as
+different situations demand different values.
<div class="node">
<p><hr>
<a name="sntp-ntpversion"></a>Next:&nbsp;<a rel="next" accesskey="n" href="#sntp-usereservedport">sntp usereservedport</a>,
diff --git a/sntp/sntp.man.in b/sntp/sntp.man.in
index d97a4e203dd8..3a6f9c5e9539 100644
--- a/sntp/sntp.man.in
+++ b/sntp/sntp.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH sntp @SNTP_MS@ "19 Dec 2014" "4.2.8" "User Commands"
+.TH sntp @SNTP_MS@ "04 Feb 2015" "4.2.8p1" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-4dayXk/ag-feaqWk)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-apayaT/ag-zpaq_S)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:51:32 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:34:13 AM by AutoGen 5.18.5pre4
.\" From the definitions sntp-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -188,7 +188,9 @@ greater than or equal to 0
.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.
+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.
@@ -289,14 +291,28 @@ 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 \-a ntpserver.somewhere\f[]
+.NOP \f[C]sntp \-Ss \-M 128 ntpserver.somewhere\f[]
With suitable privilege,
run as a command
or from a
\fCcron\fR(8)\f[]
job,
-\f\*[B-Font]sntp \-a\f[]
-will reset the local clock from a synchronized specified server,
+\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\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\fR(@NTPDATE_MS@)\f[],
or
@@ -331,7 +347,7 @@ it to autogen-users@lists.sourceforge.net. Thank you.
.NOP "Dave Hart"
.br
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/sntp/sntp.mdoc.in b/sntp/sntp.mdoc.in
index 1ce2e39554b7..9b66208f171b 100644
--- a/sntp/sntp.mdoc.in
+++ b/sntp/sntp.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt SNTP @SNTP_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (sntp-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:51:38 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:34:20 AM by AutoGen 5.18.5pre4
.\" From the definitions sntp-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -162,7 +162,9 @@ greater than or equal to 0
.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.
+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.
@@ -251,14 +253,27 @@ is searched for within those directories.
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 \-a ntpserver.somewhere"
+.It Li "sntp \-Ss \-M 128 ntpserver.somewhere"
With suitable privilege,
run as a command
or from a
.Xr cron 8
job,
-.Ic "sntp \-a"
-will reset the local clock from a synchronized specified server,
+.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
@@ -287,7 +302,7 @@ it to autogen\-users@lists.sourceforge.net. Thank you.
.An "Harlan Stenn"
.An "Dave Hart"
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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: http://bugs.ntp.org, bugs@ntp.org
diff --git a/sntp/tests/Makefile.in b/sntp/tests/Makefile.in
index c1232823a54b..73b78daf6bb9 100644
--- a/sntp/tests/Makefile.in
+++ b/sntp/tests/Makefile.in
@@ -179,6 +179,7 @@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
LDFLAGS_NTP = @LDFLAGS_NTP@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 99270f31e08f..664785610be9 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -152,6 +152,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -186,7 +187,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/tests/libntp/Makefile.in b/tests/libntp/Makefile.in
index 118e215d6711..b5b667b61fb1 100644
--- a/tests/libntp/Makefile.in
+++ b/tests/libntp/Makefile.in
@@ -166,6 +166,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -200,7 +201,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/tests/ntpd/Makefile.in b/tests/ntpd/Makefile.in
index 782513d4b51d..a9975b497777 100644
--- a/tests/ntpd/Makefile.in
+++ b/tests/ntpd/Makefile.in
@@ -169,6 +169,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -203,7 +204,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
diff --git a/util/Makefile.am b/util/Makefile.am
index 4265e0b4b957..88bf7cb022be 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -19,6 +19,7 @@ AM_LDFLAGS = $(LDFLAGS_NTP)
LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS)
tg2_LDADD= ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM)
ntp_keygen_LDADD = version.o $(LIBOPTS_LDADD) ../libntp/libntp.a
+ntp_keygen_LDADD += $(LDADD_LIBEVENT)
ntp_keygen_LDADD += $(LDADD_LIBNTP) $(PTHREAD_LIBS) $(LDADD_NTP) $(LIBM)
ntp_keygen_SOURCES = ntp-keygen.c ntp-keygen-opts.c ntp-keygen-opts.h
diff --git a/util/Makefile.in b/util/Makefile.in
index f179f73cdad1..0325e445d648 100644
--- a/util/Makefile.in
+++ b/util/Makefile.in
@@ -131,7 +131,8 @@ am_ntp_keygen_OBJECTS = ntp-keygen.$(OBJEXT) ntp-keygen-opts.$(OBJEXT)
ntp_keygen_OBJECTS = $(am_ntp_keygen_OBJECTS)
ntp_keygen_DEPENDENCIES = version.o $(am__DEPENDENCIES_1) \
../libntp/libntp.a $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
- $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
ntptime_SOURCES = ntptime.c
ntptime_OBJECTS = ntptime.$(OBJEXT)
ntptime_LDADD = $(LDADD)
@@ -259,6 +260,7 @@ CHUTEST = @CHUTEST@
CONFIG_SHELL = @CONFIG_SHELL@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CPPFLAGS_LIBEVENT = @CPPFLAGS_LIBEVENT@
CPPFLAGS_NTP = @CPPFLAGS_NTP@
CXX = @CXX@
CXXCPP = @CXXCPP@
@@ -293,7 +295,9 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
+LDADD_LIBEVENT = @LDADD_LIBEVENT@
LDADD_LIBNTP = @LDADD_LIBNTP@
+LDADD_LIBUTIL = @LDADD_LIBUTIL@
LDADD_NLIST = @LDADD_NLIST@
LDADD_NTP = @LDADD_NTP@
LDFLAGS = @LDFLAGS@
@@ -502,7 +506,8 @@ AM_LDFLAGS = $(LDFLAGS_NTP)
LDADD = ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS)
tg2_LDADD = ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM)
ntp_keygen_LDADD = version.o $(LIBOPTS_LDADD) ../libntp/libntp.a \
- $(LDADD_LIBNTP) $(PTHREAD_LIBS) $(LDADD_NTP) $(LIBM)
+ $(LDADD_LIBEVENT) $(LDADD_LIBNTP) $(PTHREAD_LIBS) $(LDADD_NTP) \
+ $(LIBM)
ntp_keygen_SOURCES = ntp-keygen.c ntp-keygen-opts.c ntp-keygen-opts.h
tickadj_LDADD = ../libntp/libntp.a $(LDADD_LIBNTP) $(LIBM) $(PTHREAD_LIBS) $(LDADD_NLIST)
EXTRA_DIST = \
diff --git a/util/invoke-ntp-keygen.texi b/util/invoke-ntp-keygen.texi
index 56ab5a8d2504..808757dc94c2 100644
--- a/util/invoke-ntp-keygen.texi
+++ b/util/invoke-ntp-keygen.texi
@@ -6,7 +6,7 @@
#
# EDIT THIS FILE WITH CAUTION (invoke-ntp-keygen.texi)
#
-# It has been AutoGen-ed December 19, 2014 at 07:50:55 AM by AutoGen 5.18.5pre4
+# It has been AutoGen-ed February 4, 2015 at 02:43:59 AM by AutoGen 5.18.5pre4
# From the definitions ntp-keygen-opts.def
# and the template file agtexi-cmd.tpl
@end ignore
@@ -886,7 +886,7 @@ with a status code of 0.
@exampleindent 0
@example
-ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8
+ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p1
Usage: ntp-keygen [ -<flag> [<val>] | --<name>[@{=| @}<val>] ]...
Flg Arg Option-Name Description
-b Num imbits identity modulus bits
diff --git a/util/jitter.h b/util/jitter.h
index 8c774b090988..14314063b59a 100644
--- a/util/jitter.h
+++ b/util/jitter.h
@@ -137,9 +137,9 @@ typedef u_int32 u_fp;
/*
* Conversions between the two fixed point types
*/
-#define MFPTOFP(x_i, x_f) (((x_i) >= 0x00010000) ? 0x7fffffff : \
- (((x_i) <= -0x00010000) ? 0x80000000 : \
- (((x_i)<<16) | (((x_f)>>16)&0xffff))))
+#define MFPTOFP(x_i, x_f) (((int)(x_i) >= 0x00010000) ? 0x7fffffff : \
+ (((int)(x_i) <= -0x00010000) ? 0x80000000 : \
+ (u_int)(((x_i)<<16) | (((x_f)>>16)&0xffff))))
#define LFPTOFP(v) MFPTOFP((v)->l_i, (v)->l_f)
#define UFPTOLFP(x, v) ((v)->l_ui = (u_fp)(x)>>16, (v)->l_uf = (x)<<16)
diff --git a/util/ntp-keygen-opts.c b/util/ntp-keygen-opts.c
index 9e7de885433f..aff2d01de3ab 100644
--- a/util/ntp-keygen-opts.c
+++ b/util/ntp-keygen-opts.c
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.c)
*
- * It has been AutoGen-ed December 19, 2014 at 07:50:39 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:43:42 AM by AutoGen 5.18.5pre4
* From the definitions ntp-keygen-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntp-keygen program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -51,7 +51,7 @@ extern "C" {
#endif
extern FILE * option_usage_fp;
#define zCopyright (ntp_keygen_opt_strs+0)
-#define zLicenseDescrip (ntp_keygen_opt_strs+322)
+#define zLicenseDescrip (ntp_keygen_opt_strs+352)
/*
* global included definitions
@@ -71,117 +71,118 @@ extern FILE * option_usage_fp;
/**
* static const strings for ntp-keygen options
*/
-static char const ntp_keygen_opt_strs[2357] =
-/* 0 */ "ntp-keygen (ntp) 4.2.8\n"
- "Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n"
+static char const ntp_keygen_opt_strs[2419] =
+/* 0 */ "ntp-keygen (ntp) 4.2.8p1\n"
+ "Copyright (C) 1992-2015 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"
-/* 322 */ "Permission to use, copy, modify, and distribute this software and its\n"
+/* 352 */ "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 makes no\n"
- "representations about the suitability this software for any purpose. It is\n"
- "provided \"as is\" without express or implied warranty.\n\0"
-/* 962 */ "identity modulus bits\0"
-/* 984 */ "IMBITS\0"
-/* 991 */ "imbits\0"
-/* 998 */ "certificate scheme\0"
-/* 1017 */ "CERTIFICATE\0"
-/* 1029 */ "certificate\0"
-/* 1041 */ "privatekey cipher\0"
-/* 1059 */ "CIPHER\0"
-/* 1066 */ "cipher\0"
-/* 1073 */ "Increase debug verbosity level\0"
-/* 1104 */ "DEBUG_LEVEL\0"
-/* 1116 */ "debug-level\0"
-/* 1128 */ "Set the debug verbosity level\0"
-/* 1158 */ "SET_DEBUG_LEVEL\0"
-/* 1174 */ "set-debug-level\0"
-/* 1190 */ "Write IFF or GQ identity keys\0"
-/* 1220 */ "ID_KEY\0"
-/* 1227 */ "id-key\0"
-/* 1234 */ "Generate GQ parameters and keys\0"
-/* 1266 */ "GQ_PARAMS\0"
-/* 1276 */ "gq-params\0"
-/* 1286 */ "generate RSA host key\0"
-/* 1308 */ "HOST_KEY\0"
-/* 1317 */ "host-key\0"
-/* 1326 */ "generate IFF parameters\0"
-/* 1350 */ "IFFKEY\0"
-/* 1357 */ "iffkey\0"
-/* 1364 */ "set Autokey group name\0"
-/* 1387 */ "IDENT\0"
-/* 1393 */ "ident\0"
-/* 1399 */ "set certificate lifetime\0"
-/* 1424 */ "LIFETIME\0"
-/* 1433 */ "lifetime\0"
-/* 1442 */ "generate MD5 keys\0"
-/* 1460 */ "MD5KEY\0"
-/* 1467 */ "md5key\0"
-/* 1474 */ "modulus\0"
-/* 1482 */ "MODULUS\0"
-/* 1490 */ "generate PC private certificate\0"
-/* 1522 */ "PVT_CERT\0"
-/* 1531 */ "pvt-cert\0"
-/* 1540 */ "local private password\0"
-/* 1563 */ "PASSWORD\0"
-/* 1572 */ "password\0"
-/* 1581 */ "export IFF or GQ group keys with password\0"
-/* 1623 */ "EXPORT_PASSWD\0"
-/* 1637 */ "export-passwd\0"
-/* 1651 */ "generate sign key (RSA or DSA)\0"
-/* 1682 */ "SIGN_KEY\0"
-/* 1691 */ "sign-key\0"
-/* 1700 */ "set host and optionally group name\0"
-/* 1735 */ "SUBJECT_NAME\0"
-/* 1748 */ "subject-name\0"
-/* 1761 */ "trusted certificate (TC scheme)\0"
-/* 1793 */ "TRUSTED_CERT\0"
-/* 1806 */ "trusted-cert\0"
-/* 1819 */ "generate <num> MV parameters\0"
-/* 1848 */ "MV_PARAMS\0"
-/* 1858 */ "mv-params\0"
-/* 1868 */ "update <num> MV keys\0"
-/* 1889 */ "MV_KEYS\0"
-/* 1897 */ "mv-keys\0"
-/* 1905 */ "display extended usage information and exit\0"
-/* 1949 */ "help\0"
-/* 1954 */ "extended usage information passed thru pager\0"
-/* 1999 */ "more-help\0"
-/* 2009 */ "output version information and exit\0"
-/* 2045 */ "version\0"
-/* 2053 */ "save the option state to a config file\0"
-/* 2092 */ "save-opts\0"
-/* 2102 */ "load options from a config file\0"
-/* 2134 */ "LOAD_OPTS\0"
-/* 2144 */ "no-load-opts\0"
-/* 2157 */ "no\0"
-/* 2160 */ "NTP_KEYGEN\0"
-/* 2171 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8\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"
+/* 1020 */ "identity modulus bits\0"
+/* 1042 */ "IMBITS\0"
+/* 1049 */ "imbits\0"
+/* 1056 */ "certificate scheme\0"
+/* 1075 */ "CERTIFICATE\0"
+/* 1087 */ "certificate\0"
+/* 1099 */ "privatekey cipher\0"
+/* 1117 */ "CIPHER\0"
+/* 1124 */ "cipher\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 */ "Write IFF or GQ identity keys\0"
+/* 1278 */ "ID_KEY\0"
+/* 1285 */ "id-key\0"
+/* 1292 */ "Generate GQ parameters and keys\0"
+/* 1324 */ "GQ_PARAMS\0"
+/* 1334 */ "gq-params\0"
+/* 1344 */ "generate RSA host key\0"
+/* 1366 */ "HOST_KEY\0"
+/* 1375 */ "host-key\0"
+/* 1384 */ "generate IFF parameters\0"
+/* 1408 */ "IFFKEY\0"
+/* 1415 */ "iffkey\0"
+/* 1422 */ "set Autokey group name\0"
+/* 1445 */ "IDENT\0"
+/* 1451 */ "ident\0"
+/* 1457 */ "set certificate lifetime\0"
+/* 1482 */ "LIFETIME\0"
+/* 1491 */ "lifetime\0"
+/* 1500 */ "generate MD5 keys\0"
+/* 1518 */ "MD5KEY\0"
+/* 1525 */ "md5key\0"
+/* 1532 */ "modulus\0"
+/* 1540 */ "MODULUS\0"
+/* 1548 */ "generate PC private certificate\0"
+/* 1580 */ "PVT_CERT\0"
+/* 1589 */ "pvt-cert\0"
+/* 1598 */ "local private password\0"
+/* 1621 */ "PASSWORD\0"
+/* 1630 */ "password\0"
+/* 1639 */ "export IFF or GQ group keys with password\0"
+/* 1681 */ "EXPORT_PASSWD\0"
+/* 1695 */ "export-passwd\0"
+/* 1709 */ "generate sign key (RSA or DSA)\0"
+/* 1740 */ "SIGN_KEY\0"
+/* 1749 */ "sign-key\0"
+/* 1758 */ "set host and optionally group name\0"
+/* 1793 */ "SUBJECT_NAME\0"
+/* 1806 */ "subject-name\0"
+/* 1819 */ "trusted certificate (TC scheme)\0"
+/* 1851 */ "TRUSTED_CERT\0"
+/* 1864 */ "trusted-cert\0"
+/* 1877 */ "generate <num> MV parameters\0"
+/* 1906 */ "MV_PARAMS\0"
+/* 1916 */ "mv-params\0"
+/* 1926 */ "update <num> MV keys\0"
+/* 1947 */ "MV_KEYS\0"
+/* 1955 */ "mv-keys\0"
+/* 1963 */ "display extended usage information and exit\0"
+/* 2007 */ "help\0"
+/* 2012 */ "extended usage information passed thru pager\0"
+/* 2057 */ "more-help\0"
+/* 2067 */ "output version information and exit\0"
+/* 2103 */ "version\0"
+/* 2111 */ "save the option state to a config file\0"
+/* 2150 */ "save-opts\0"
+/* 2160 */ "load options from a config file\0"
+/* 2192 */ "LOAD_OPTS\0"
+/* 2202 */ "no-load-opts\0"
+/* 2215 */ "no\0"
+/* 2218 */ "NTP_KEYGEN\0"
+/* 2229 */ "ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p1\n"
"Usage: %s [ -<flag> [<val>] | --<name>[{=| }<val>] ]...\n\0"
-/* 2283 */ "$HOME\0"
-/* 2289 */ ".\0"
-/* 2291 */ ".ntprc\0"
-/* 2298 */ "http://bugs.ntp.org, bugs@ntp.org\0"
-/* 2332 */ "\n\0"
-/* 2334 */ "ntp-keygen (ntp) 4.2.8";
+/* 2343 */ "$HOME\0"
+/* 2349 */ ".\0"
+/* 2351 */ ".ntprc\0"
+/* 2358 */ "http://bugs.ntp.org, bugs@ntp.org\0"
+/* 2392 */ "\n\0"
+/* 2394 */ "ntp-keygen (ntp) 4.2.8p1";
/**
* imbits option description:
*/
#ifdef AUTOKEY
/** Descriptive text for the imbits option */
-#define IMBITS_DESC (ntp_keygen_opt_strs+962)
+#define IMBITS_DESC (ntp_keygen_opt_strs+1020)
/** Upper-cased name for the imbits option */
-#define IMBITS_NAME (ntp_keygen_opt_strs+984)
+#define IMBITS_NAME (ntp_keygen_opt_strs+1042)
/** Name string for the imbits option */
-#define IMBITS_name (ntp_keygen_opt_strs+991)
+#define IMBITS_name (ntp_keygen_opt_strs+1049)
/** Compiled in flag settings for the imbits option */
#define IMBITS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -198,11 +199,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the certificate option */
-#define CERTIFICATE_DESC (ntp_keygen_opt_strs+998)
+#define CERTIFICATE_DESC (ntp_keygen_opt_strs+1056)
/** Upper-cased name for the certificate option */
-#define CERTIFICATE_NAME (ntp_keygen_opt_strs+1017)
+#define CERTIFICATE_NAME (ntp_keygen_opt_strs+1075)
/** Name string for the certificate option */
-#define CERTIFICATE_name (ntp_keygen_opt_strs+1029)
+#define CERTIFICATE_name (ntp_keygen_opt_strs+1087)
/** Compiled in flag settings for the certificate option */
#define CERTIFICATE_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -219,11 +220,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the cipher option */
-#define CIPHER_DESC (ntp_keygen_opt_strs+1041)
+#define CIPHER_DESC (ntp_keygen_opt_strs+1099)
/** Upper-cased name for the cipher option */
-#define CIPHER_NAME (ntp_keygen_opt_strs+1059)
+#define CIPHER_NAME (ntp_keygen_opt_strs+1117)
/** Name string for the cipher option */
-#define CIPHER_name (ntp_keygen_opt_strs+1066)
+#define CIPHER_name (ntp_keygen_opt_strs+1124)
/** Compiled in flag settings for the cipher option */
#define CIPHER_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -239,11 +240,11 @@ static char const ntp_keygen_opt_strs[2357] =
* debug-level option description:
*/
/** Descriptive text for the debug-level option */
-#define DEBUG_LEVEL_DESC (ntp_keygen_opt_strs+1073)
+#define DEBUG_LEVEL_DESC (ntp_keygen_opt_strs+1131)
/** Upper-cased name for the debug-level option */
-#define DEBUG_LEVEL_NAME (ntp_keygen_opt_strs+1104)
+#define DEBUG_LEVEL_NAME (ntp_keygen_opt_strs+1162)
/** Name string for the debug-level option */
-#define DEBUG_LEVEL_name (ntp_keygen_opt_strs+1116)
+#define DEBUG_LEVEL_name (ntp_keygen_opt_strs+1174)
/** Compiled in flag settings for the debug-level option */
#define DEBUG_LEVEL_FLAGS (OPTST_DISABLED)
@@ -251,11 +252,11 @@ static char const ntp_keygen_opt_strs[2357] =
* set-debug-level option description:
*/
/** Descriptive text for the set-debug-level option */
-#define SET_DEBUG_LEVEL_DESC (ntp_keygen_opt_strs+1128)
+#define SET_DEBUG_LEVEL_DESC (ntp_keygen_opt_strs+1186)
/** Upper-cased name for the set-debug-level option */
-#define SET_DEBUG_LEVEL_NAME (ntp_keygen_opt_strs+1158)
+#define SET_DEBUG_LEVEL_NAME (ntp_keygen_opt_strs+1216)
/** Name string for the set-debug-level option */
-#define SET_DEBUG_LEVEL_name (ntp_keygen_opt_strs+1174)
+#define SET_DEBUG_LEVEL_name (ntp_keygen_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))
@@ -265,11 +266,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the id-key option */
-#define ID_KEY_DESC (ntp_keygen_opt_strs+1190)
+#define ID_KEY_DESC (ntp_keygen_opt_strs+1248)
/** Upper-cased name for the id-key option */
-#define ID_KEY_NAME (ntp_keygen_opt_strs+1220)
+#define ID_KEY_NAME (ntp_keygen_opt_strs+1278)
/** Name string for the id-key option */
-#define ID_KEY_name (ntp_keygen_opt_strs+1227)
+#define ID_KEY_name (ntp_keygen_opt_strs+1285)
/** Compiled in flag settings for the id-key option */
#define ID_KEY_FLAGS (OPTST_DISABLED)
@@ -285,11 +286,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the gq-params option */
-#define GQ_PARAMS_DESC (ntp_keygen_opt_strs+1234)
+#define GQ_PARAMS_DESC (ntp_keygen_opt_strs+1292)
/** Upper-cased name for the gq-params option */
-#define GQ_PARAMS_NAME (ntp_keygen_opt_strs+1266)
+#define GQ_PARAMS_NAME (ntp_keygen_opt_strs+1324)
/** Name string for the gq-params option */
-#define GQ_PARAMS_name (ntp_keygen_opt_strs+1276)
+#define GQ_PARAMS_name (ntp_keygen_opt_strs+1334)
/** Compiled in flag settings for the gq-params option */
#define GQ_PARAMS_FLAGS (OPTST_DISABLED)
@@ -305,11 +306,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the host-key option */
-#define HOST_KEY_DESC (ntp_keygen_opt_strs+1286)
+#define HOST_KEY_DESC (ntp_keygen_opt_strs+1344)
/** Upper-cased name for the host-key option */
-#define HOST_KEY_NAME (ntp_keygen_opt_strs+1308)
+#define HOST_KEY_NAME (ntp_keygen_opt_strs+1366)
/** Name string for the host-key option */
-#define HOST_KEY_name (ntp_keygen_opt_strs+1317)
+#define HOST_KEY_name (ntp_keygen_opt_strs+1375)
/** Compiled in flag settings for the host-key option */
#define HOST_KEY_FLAGS (OPTST_DISABLED)
@@ -325,11 +326,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the iffkey option */
-#define IFFKEY_DESC (ntp_keygen_opt_strs+1326)
+#define IFFKEY_DESC (ntp_keygen_opt_strs+1384)
/** Upper-cased name for the iffkey option */
-#define IFFKEY_NAME (ntp_keygen_opt_strs+1350)
+#define IFFKEY_NAME (ntp_keygen_opt_strs+1408)
/** Name string for the iffkey option */
-#define IFFKEY_name (ntp_keygen_opt_strs+1357)
+#define IFFKEY_name (ntp_keygen_opt_strs+1415)
/** Compiled in flag settings for the iffkey option */
#define IFFKEY_FLAGS (OPTST_DISABLED)
@@ -345,11 +346,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the ident option */
-#define IDENT_DESC (ntp_keygen_opt_strs+1364)
+#define IDENT_DESC (ntp_keygen_opt_strs+1422)
/** Upper-cased name for the ident option */
-#define IDENT_NAME (ntp_keygen_opt_strs+1387)
+#define IDENT_NAME (ntp_keygen_opt_strs+1445)
/** Name string for the ident option */
-#define IDENT_name (ntp_keygen_opt_strs+1393)
+#define IDENT_name (ntp_keygen_opt_strs+1451)
/** Compiled in flag settings for the ident option */
#define IDENT_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -366,11 +367,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the lifetime option */
-#define LIFETIME_DESC (ntp_keygen_opt_strs+1399)
+#define LIFETIME_DESC (ntp_keygen_opt_strs+1457)
/** Upper-cased name for the lifetime option */
-#define LIFETIME_NAME (ntp_keygen_opt_strs+1424)
+#define LIFETIME_NAME (ntp_keygen_opt_strs+1482)
/** Name string for the lifetime option */
-#define LIFETIME_name (ntp_keygen_opt_strs+1433)
+#define LIFETIME_name (ntp_keygen_opt_strs+1491)
/** Compiled in flag settings for the lifetime option */
#define LIFETIME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -386,11 +387,11 @@ static char const ntp_keygen_opt_strs[2357] =
* md5key option description:
*/
/** Descriptive text for the md5key option */
-#define MD5KEY_DESC (ntp_keygen_opt_strs+1442)
+#define MD5KEY_DESC (ntp_keygen_opt_strs+1500)
/** Upper-cased name for the md5key option */
-#define MD5KEY_NAME (ntp_keygen_opt_strs+1460)
+#define MD5KEY_NAME (ntp_keygen_opt_strs+1518)
/** Name string for the md5key option */
-#define MD5KEY_name (ntp_keygen_opt_strs+1467)
+#define MD5KEY_name (ntp_keygen_opt_strs+1525)
/** Compiled in flag settings for the md5key option */
#define MD5KEY_FLAGS (OPTST_DISABLED)
@@ -399,11 +400,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the modulus option */
-#define MODULUS_DESC (ntp_keygen_opt_strs+1474)
+#define MODULUS_DESC (ntp_keygen_opt_strs+1532)
/** Upper-cased name for the modulus option */
-#define MODULUS_NAME (ntp_keygen_opt_strs+1482)
+#define MODULUS_NAME (ntp_keygen_opt_strs+1540)
/** Name string for the modulus option */
-#define MODULUS_name (ntp_keygen_opt_strs+1474)
+#define MODULUS_name (ntp_keygen_opt_strs+1532)
/** Compiled in flag settings for the modulus option */
#define MODULUS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -420,11 +421,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the pvt-cert option */
-#define PVT_CERT_DESC (ntp_keygen_opt_strs+1490)
+#define PVT_CERT_DESC (ntp_keygen_opt_strs+1548)
/** Upper-cased name for the pvt-cert option */
-#define PVT_CERT_NAME (ntp_keygen_opt_strs+1522)
+#define PVT_CERT_NAME (ntp_keygen_opt_strs+1580)
/** Name string for the pvt-cert option */
-#define PVT_CERT_name (ntp_keygen_opt_strs+1531)
+#define PVT_CERT_name (ntp_keygen_opt_strs+1589)
/** Compiled in flag settings for the pvt-cert option */
#define PVT_CERT_FLAGS (OPTST_DISABLED)
@@ -440,11 +441,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the password option */
-#define PASSWORD_DESC (ntp_keygen_opt_strs+1540)
+#define PASSWORD_DESC (ntp_keygen_opt_strs+1598)
/** Upper-cased name for the password option */
-#define PASSWORD_NAME (ntp_keygen_opt_strs+1563)
+#define PASSWORD_NAME (ntp_keygen_opt_strs+1621)
/** Name string for the password option */
-#define PASSWORD_name (ntp_keygen_opt_strs+1572)
+#define PASSWORD_name (ntp_keygen_opt_strs+1630)
/** Compiled in flag settings for the password option */
#define PASSWORD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -461,11 +462,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the export-passwd option */
-#define EXPORT_PASSWD_DESC (ntp_keygen_opt_strs+1581)
+#define EXPORT_PASSWD_DESC (ntp_keygen_opt_strs+1639)
/** Upper-cased name for the export-passwd option */
-#define EXPORT_PASSWD_NAME (ntp_keygen_opt_strs+1623)
+#define EXPORT_PASSWD_NAME (ntp_keygen_opt_strs+1681)
/** Name string for the export-passwd option */
-#define EXPORT_PASSWD_name (ntp_keygen_opt_strs+1637)
+#define EXPORT_PASSWD_name (ntp_keygen_opt_strs+1695)
/** Compiled in flag settings for the export-passwd option */
#define EXPORT_PASSWD_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -482,11 +483,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the sign-key option */
-#define SIGN_KEY_DESC (ntp_keygen_opt_strs+1651)
+#define SIGN_KEY_DESC (ntp_keygen_opt_strs+1709)
/** Upper-cased name for the sign-key option */
-#define SIGN_KEY_NAME (ntp_keygen_opt_strs+1682)
+#define SIGN_KEY_NAME (ntp_keygen_opt_strs+1740)
/** Name string for the sign-key option */
-#define SIGN_KEY_name (ntp_keygen_opt_strs+1691)
+#define SIGN_KEY_name (ntp_keygen_opt_strs+1749)
/** Compiled in flag settings for the sign-key option */
#define SIGN_KEY_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -503,11 +504,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the subject-name option */
-#define SUBJECT_NAME_DESC (ntp_keygen_opt_strs+1700)
+#define SUBJECT_NAME_DESC (ntp_keygen_opt_strs+1758)
/** Upper-cased name for the subject-name option */
-#define SUBJECT_NAME_NAME (ntp_keygen_opt_strs+1735)
+#define SUBJECT_NAME_NAME (ntp_keygen_opt_strs+1793)
/** Name string for the subject-name option */
-#define SUBJECT_NAME_name (ntp_keygen_opt_strs+1748)
+#define SUBJECT_NAME_name (ntp_keygen_opt_strs+1806)
/** Compiled in flag settings for the subject-name option */
#define SUBJECT_NAME_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_STRING))
@@ -524,11 +525,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the trusted-cert option */
-#define TRUSTED_CERT_DESC (ntp_keygen_opt_strs+1761)
+#define TRUSTED_CERT_DESC (ntp_keygen_opt_strs+1819)
/** Upper-cased name for the trusted-cert option */
-#define TRUSTED_CERT_NAME (ntp_keygen_opt_strs+1793)
+#define TRUSTED_CERT_NAME (ntp_keygen_opt_strs+1851)
/** Name string for the trusted-cert option */
-#define TRUSTED_CERT_name (ntp_keygen_opt_strs+1806)
+#define TRUSTED_CERT_name (ntp_keygen_opt_strs+1864)
/** Compiled in flag settings for the trusted-cert option */
#define TRUSTED_CERT_FLAGS (OPTST_DISABLED)
@@ -544,11 +545,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the mv-params option */
-#define MV_PARAMS_DESC (ntp_keygen_opt_strs+1819)
+#define MV_PARAMS_DESC (ntp_keygen_opt_strs+1877)
/** Upper-cased name for the mv-params option */
-#define MV_PARAMS_NAME (ntp_keygen_opt_strs+1848)
+#define MV_PARAMS_NAME (ntp_keygen_opt_strs+1906)
/** Name string for the mv-params option */
-#define MV_PARAMS_name (ntp_keygen_opt_strs+1858)
+#define MV_PARAMS_name (ntp_keygen_opt_strs+1916)
/** Compiled in flag settings for the mv-params option */
#define MV_PARAMS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -565,11 +566,11 @@ static char const ntp_keygen_opt_strs[2357] =
*/
#ifdef AUTOKEY
/** Descriptive text for the mv-keys option */
-#define MV_KEYS_DESC (ntp_keygen_opt_strs+1868)
+#define MV_KEYS_DESC (ntp_keygen_opt_strs+1926)
/** Upper-cased name for the mv-keys option */
-#define MV_KEYS_NAME (ntp_keygen_opt_strs+1889)
+#define MV_KEYS_NAME (ntp_keygen_opt_strs+1947)
/** Name string for the mv-keys option */
-#define MV_KEYS_name (ntp_keygen_opt_strs+1897)
+#define MV_KEYS_name (ntp_keygen_opt_strs+1955)
/** Compiled in flag settings for the mv-keys option */
#define MV_KEYS_FLAGS (OPTST_DISABLED \
| OPTST_SET_ARGTYPE(OPARG_TYPE_NUMERIC))
@@ -584,11 +585,11 @@ static char const ntp_keygen_opt_strs[2357] =
/*
* Help/More_Help/Version option descriptions:
*/
-#define HELP_DESC (ntp_keygen_opt_strs+1905)
-#define HELP_name (ntp_keygen_opt_strs+1949)
+#define HELP_DESC (ntp_keygen_opt_strs+1963)
+#define HELP_name (ntp_keygen_opt_strs+2007)
#ifdef HAVE_WORKING_FORK
-#define MORE_HELP_DESC (ntp_keygen_opt_strs+1954)
-#define MORE_HELP_name (ntp_keygen_opt_strs+1999)
+#define MORE_HELP_DESC (ntp_keygen_opt_strs+2012)
+#define MORE_HELP_name (ntp_keygen_opt_strs+2057)
#define MORE_HELP_FLAGS (OPTST_IMM | OPTST_NO_INIT)
#else
#define MORE_HELP_DESC HELP_DESC
@@ -601,14 +602,14 @@ static char const ntp_keygen_opt_strs[2357] =
# 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+2009)
-#define VER_name (ntp_keygen_opt_strs+2045)
-#define SAVE_OPTS_DESC (ntp_keygen_opt_strs+2053)
-#define SAVE_OPTS_name (ntp_keygen_opt_strs+2092)
-#define LOAD_OPTS_DESC (ntp_keygen_opt_strs+2102)
-#define LOAD_OPTS_NAME (ntp_keygen_opt_strs+2134)
-#define NO_LOAD_OPTS_name (ntp_keygen_opt_strs+2144)
-#define LOAD_OPTS_pfx (ntp_keygen_opt_strs+2157)
+#define VER_DESC (ntp_keygen_opt_strs+2067)
+#define VER_name (ntp_keygen_opt_strs+2103)
+#define SAVE_OPTS_DESC (ntp_keygen_opt_strs+2111)
+#define SAVE_OPTS_name (ntp_keygen_opt_strs+2150)
+#define LOAD_OPTS_DESC (ntp_keygen_opt_strs+2160)
+#define LOAD_OPTS_NAME (ntp_keygen_opt_strs+2192)
+#define NO_LOAD_OPTS_name (ntp_keygen_opt_strs+2202)
+#define LOAD_OPTS_pfx (ntp_keygen_opt_strs+2215)
#define LOAD_OPTS_name (NO_LOAD_OPTS_name + 3)
/**
* Declare option callback procedures
@@ -959,24 +960,24 @@ static tOptDesc optDesc[OPTION_CT] = {
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/** Reference to the upper cased version of ntp-keygen. */
-#define zPROGNAME (ntp_keygen_opt_strs+2160)
+#define zPROGNAME (ntp_keygen_opt_strs+2218)
/** Reference to the title line for ntp-keygen usage. */
-#define zUsageTitle (ntp_keygen_opt_strs+2171)
+#define zUsageTitle (ntp_keygen_opt_strs+2229)
/** ntp-keygen configuration file name. */
-#define zRcName (ntp_keygen_opt_strs+2291)
+#define zRcName (ntp_keygen_opt_strs+2351)
/** Directories to search for ntp-keygen config files. */
static char const * const apzHomeList[3] = {
- ntp_keygen_opt_strs+2283,
- ntp_keygen_opt_strs+2289,
+ ntp_keygen_opt_strs+2343,
+ ntp_keygen_opt_strs+2349,
NULL };
/** The ntp-keygen program bug email address. */
-#define zBugsAddr (ntp_keygen_opt_strs+2298)
+#define zBugsAddr (ntp_keygen_opt_strs+2358)
/** Clarification/explanation of what ntp-keygen does. */
-#define zExplain (ntp_keygen_opt_strs+2332)
+#define zExplain (ntp_keygen_opt_strs+2392)
/** Extra detail explaining what ntp-keygen does. */
#define zDetail (NULL)
/** The full version string for ntp-keygen. */
-#define zFullVersion (ntp_keygen_opt_strs+2334)
+#define zFullVersion (ntp_keygen_opt_strs+2394)
/* extracted from optcode.tlib near line 364 */
#if defined(ENABLE_NLS)
@@ -1308,8 +1309,8 @@ static void bogus_function(void) {
translate option names.
*/
/* referenced via ntp_keygenOptions.pzCopyright */
- puts(_("ntp-keygen (ntp) 4.2.8\n\
-Copyright (C) 1970-2014 The University of Delaware, all rights reserved.\n\
+ puts(_("ntp-keygen (ntp) 4.2.8p1\n\
+Copyright (C) 1992-2015 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"));
@@ -1323,9 +1324,10 @@ 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 makes no\n\
-representations about the suitability this software for any purpose. It is\n\
-provided \"as is\" without express or implied warranty.\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"));
@@ -1406,14 +1408,14 @@ provided \"as is\" without express or implied warranty.\n"));
puts(_("load options from a config file"));
/* referenced via ntp_keygenOptions.pzUsageTitle */
- puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8\n\
+ puts(_("ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p1\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.8"));
+ puts(_("ntp-keygen (ntp) 4.2.8p1"));
/* referenced via ntp_keygenOptions.pzFullUsage */
puts(_("<<<NOT-FOUND>>>"));
diff --git a/util/ntp-keygen-opts.h b/util/ntp-keygen-opts.h
index c16925055f4c..48489999dda5 100644
--- a/util/ntp-keygen-opts.h
+++ b/util/ntp-keygen-opts.h
@@ -1,7 +1,7 @@
/*
* EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.h)
*
- * It has been AutoGen-ed December 19, 2014 at 07:50:38 AM by AutoGen 5.18.5pre4
+ * It has been AutoGen-ed February 4, 2015 at 02:43:41 AM by AutoGen 5.18.5pre4
* From the definitions ntp-keygen-opts.def
* and the template file options
*
@@ -18,7 +18,7 @@
* The ntp-keygen program is copyrighted and licensed
* under the following terms:
*
- * Copyright (C) 1970-2014 The University of Delaware, all rights reserved.
+ * Copyright (C) 1992-2015 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:
@@ -31,7 +31,7 @@
* 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 makes no
+ * 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.
*/
@@ -94,9 +94,9 @@ typedef enum {
/** count of all options for ntp-keygen */
#define OPTION_CT 26
/** ntp-keygen version */
-#define NTP_KEYGEN_VERSION "4.2.8"
+#define NTP_KEYGEN_VERSION "4.2.8p1"
/** Full ntp-keygen version text */
-#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8"
+#define NTP_KEYGEN_FULL_VERSION "ntp-keygen (ntp) 4.2.8p1"
/**
* Interface defines for all options. Replace "n" with the UPPER_CASED
diff --git a/util/ntp-keygen.1ntp-keygenman b/util/ntp-keygen.1ntp-keygenman
index 5b076cebe2b1..46bbad8294f6 100644
--- a/util/ntp-keygen.1ntp-keygenman
+++ b/util/ntp-keygen.1ntp-keygenman
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-keygen 1ntp-keygenman "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntp-keygen 1ntp-keygenman "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-6fayVi/ag-hgaqUi)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Xkaqsu/ag-9kairu)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:51 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:55 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -1195,9 +1195,9 @@ libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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,
diff --git a/util/ntp-keygen.1ntp-keygenmdoc b/util/ntp-keygen.1ntp-keygenmdoc
index a3bb102526bd..d70ca2c4e5e5 100644
--- a/util/ntp-keygen.1ntp-keygenmdoc
+++ b/util/ntp-keygen.1ntp-keygenmdoc
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_KEYGEN 1ntp-keygenmdoc User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:58 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:44:02 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -1051,9 +1051,9 @@ libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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,
diff --git a/util/ntp-keygen.c b/util/ntp-keygen.c
index 6aed1a271a15..c16902161297 100644
--- a/util/ntp-keygen.c
+++ b/util/ntp-keygen.c
@@ -108,6 +108,7 @@
#endif /* OPENSSL */
#include <ssl_applink.c>
+#define _UC(str) ((char *)(intptr_t)(str))
/*
* Cryptodefines
*/
@@ -131,19 +132,19 @@
* Prototypes
*/
FILE *fheader (const char *, const char *, const char *);
-int gen_md5 (char *);
+int gen_md5 (const char *);
void followlink (char *, size_t);
#ifdef AUTOKEY
-EVP_PKEY *gen_rsa (char *);
-EVP_PKEY *gen_dsa (char *);
-EVP_PKEY *gen_iffkey (char *);
-EVP_PKEY *gen_gqkey (char *);
-EVP_PKEY *gen_mvkey (char *, EVP_PKEY **);
+EVP_PKEY *gen_rsa (const char *);
+EVP_PKEY *gen_dsa (const char *);
+EVP_PKEY *gen_iffkey (const char *);
+EVP_PKEY *gen_gqkey (const char *);
+EVP_PKEY *gen_mvkey (const char *, EVP_PKEY **);
void gen_mvserv (char *, EVP_PKEY **);
-int x509 (EVP_PKEY *, const EVP_MD *, char *, char *,
+int x509 (EVP_PKEY *, const EVP_MD *, char *, const char *,
char *);
void cb (int, int, void *);
-EVP_PKEY *genkey (char *, char *);
+EVP_PKEY *genkey (const char *, const char *);
EVP_PKEY *readkey (char *, char *, u_int *, EVP_PKEY **);
void writekey (char *, char *, u_int *, EVP_PKEY **);
u_long asn2ntp (ASN1_TIME *);
@@ -311,7 +312,7 @@ main(
char pathbuf[MAXFILENAME + 1];
const char *scheme = NULL; /* digest/signature scheme */
const char *ciphername = NULL; /* to encrypt priv. key */
- char *exten = NULL; /* private extension */
+ const char *exten = NULL; /* private extension */
char *grpkey = NULL; /* identity extension */
int nid; /* X509 digest/signature scheme */
FILE *fstr = NULL; /* file handle */
@@ -811,7 +812,7 @@ main(
*/
int
gen_md5(
- char *id /* file name id */
+ const char *id /* file name id */
)
{
u_char md5key[MD5SIZE + 1]; /* MD5 key */
@@ -958,7 +959,7 @@ readkey(
*/
EVP_PKEY * /* public/private key pair */
gen_rsa(
- char *id /* file name id */
+ const char *id /* file name id */
)
{
EVP_PKEY *pkey; /* private key */
@@ -966,7 +967,7 @@ gen_rsa(
FILE *str;
fprintf(stderr, "Generating RSA keys (%d bits)...\n", modulus);
- rsa = RSA_generate_key(modulus, 65537, cb, "RSA");
+ rsa = RSA_generate_key(modulus, 65537, cb, _UC("RSA"));
fprintf(stderr, "\n");
if (rsa == NULL) {
fprintf(stderr, "RSA generate keys fails\n%s\n",
@@ -1011,7 +1012,7 @@ gen_rsa(
*/
EVP_PKEY * /* public/private key pair */
gen_dsa(
- char *id /* file name id */
+ const char *id /* file name id */
)
{
EVP_PKEY *pkey; /* private key */
@@ -1026,7 +1027,7 @@ gen_dsa(
"Generating DSA parameters (%d bits)...\n", modulus);
RAND_bytes(seed, sizeof(seed));
dsa = DSA_generate_parameters(modulus, seed, sizeof(seed), NULL,
- NULL, cb, "DSA");
+ NULL, cb, _UC("DSA"));
fprintf(stderr, "\n");
if (dsa == NULL) {
fprintf(stderr, "DSA generate parameters fails\n%s\n",
@@ -1113,7 +1114,7 @@ gen_dsa(
*/
EVP_PKEY * /* DSA cuckoo nest */
gen_iffkey(
- char *id /* file name id */
+ const char *id /* file name id */
)
{
EVP_PKEY *pkey; /* private key */
@@ -1131,7 +1132,7 @@ gen_iffkey(
modulus2);
RAND_bytes(seed, sizeof(seed));
dsa = DSA_generate_parameters(modulus2, seed, sizeof(seed), NULL,
- NULL, cb, "IFF");
+ NULL, cb, _UC("IFF"));
fprintf(stderr, "\n");
if (dsa == NULL) {
fprintf(stderr, "DSA generate parameters fails\n%s\n",
@@ -1291,7 +1292,7 @@ gen_iffkey(
*/
EVP_PKEY * /* RSA cuckoo nest */
gen_gqkey(
- char *id /* file name id */
+ const char *id /* file name id */
)
{
EVP_PKEY *pkey; /* private key */
@@ -1307,7 +1308,7 @@ gen_gqkey(
fprintf(stderr,
"Generating GQ parameters (%d bits)...\n",
modulus2);
- rsa = RSA_generate_key(modulus2, 65537, cb, "GQ");
+ rsa = RSA_generate_key(modulus2, 65537, cb, _UC("GQ"));
fprintf(stderr, "\n");
if (rsa == NULL) {
fprintf(stderr, "RSA generate keys fails\n%s\n",
@@ -1500,7 +1501,7 @@ gen_gqkey(
*/
EVP_PKEY * /* DSA cuckoo nest */
gen_mvkey(
- char *id, /* file name id */
+ const char *id, /* file name id */
EVP_PKEY **evpars /* parameter list pointer */
)
{
@@ -1925,7 +1926,7 @@ x509 (
EVP_PKEY *pkey, /* signing key */
const EVP_MD *md, /* signature/digest scheme */
char *gqpub, /* identity extension (hex string) */
- char *exten, /* private cert extension */
+ const char *exten, /* private cert extension */
char *name /* subject/issuer name */
)
{
@@ -1979,7 +1980,7 @@ x509 (
fprintf(stderr, "%s: %s\n", LN_basic_constraints,
BASIC_CONSTRAINTS);
ex = X509V3_EXT_conf_nid(NULL, NULL, NID_basic_constraints,
- BASIC_CONSTRAINTS);
+ _UC(BASIC_CONSTRAINTS));
if (!X509_add_ext(cert, ex, -1)) {
fprintf(stderr, "Add extension field fails\n%s\n",
ERR_error_string(ERR_get_error(), NULL));
@@ -1992,7 +1993,7 @@ x509 (
* be used for.
*/
fprintf(stderr, "%s: %s\n", LN_key_usage, KEY_USAGE);
- ex = X509V3_EXT_conf_nid(NULL, NULL, NID_key_usage, KEY_USAGE);
+ ex = X509V3_EXT_conf_nid(NULL, NULL, NID_key_usage, _UC(KEY_USAGE));
if (!X509_add_ext(cert, ex, -1)) {
fprintf(stderr, "Add extension field fails\n%s\n",
ERR_error_string(ERR_get_error(), NULL));
@@ -2027,7 +2028,7 @@ x509 (
if (exten != NULL) {
fprintf(stderr, "%s: %s\n", LN_ext_key_usage, exten);
ex = X509V3_EXT_conf_nid(NULL, NULL,
- NID_ext_key_usage, exten);
+ NID_ext_key_usage, _UC(exten));
if (!X509_add_ext(cert, ex, -1)) {
fprintf(stderr,
"Add extension field fails\n%s\n",
@@ -2138,8 +2139,8 @@ cb (
*/
EVP_PKEY * /* public/private key pair */
genkey(
- char *type, /* key type (RSA or DSA) */
- char *id /* file name id */
+ const char *type, /* key type (RSA or DSA) */
+ const char *id /* file name id */
)
{
if (type == NULL)
diff --git a/util/ntp-keygen.html b/util/ntp-keygen.html
index bf55aa407528..3b950ec843eb 100644
--- a/util/ntp-keygen.html
+++ b/util/ntp-keygen.html
@@ -70,7 +70,7 @@ All other files are in PEM-encoded
printable ASCII format so they can be embedded as MIME attachments in
mail to other sites.
- <p>This document applies to version 4.2.8 of <code>ntp-keygen</code>.
+ <p>This document applies to version 4.2.8p1 of <code>ntp-keygen</code>.
<div class="node">
<p><hr>
@@ -1085,7 +1085,7 @@ the usage text by passing it through a pager program.
used to select the program, defaulting to <span class="file">more</span>. Both will exit
with a status code of 0.
-<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.7p486-RC
+<pre class="example">ntp-keygen (ntp) - Create a NTP host key - Ver. 4.2.8p1-RC2
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
diff --git a/util/ntp-keygen.man.in b/util/ntp-keygen.man.in
index 2b0f2b538aba..6242382b020c 100644
--- a/util/ntp-keygen.man.in
+++ b/util/ntp-keygen.man.in
@@ -10,11 +10,11 @@
.ds B-Font B
.ds I-Font I
.ds R-Font R
-.TH ntp-keygen @NTP_KEYGEN_MS@ "19 Dec 2014" "ntp (4.2.8)" "User Commands"
+.TH ntp-keygen @NTP_KEYGEN_MS@ "04 Feb 2015" "ntp (4.2.8p1)" "User Commands"
.\"
-.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-6fayVi/ag-hgaqUi)
+.\" EDIT THIS FILE WITH CAUTION (/tmp/.ag-Xkaqsu/ag-9kairu)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:51 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:43:55 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agman-cmd.tpl
.SH NAME
@@ -1195,9 +1195,9 @@ libopts had an internal operational error. Please report
it to autogen-users@lists.sourceforge.net. Thank you.
.PP
.SH "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.SH "COPYRIGHT"
-Copyright (C) 1970-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992-2015 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,
diff --git a/util/ntp-keygen.mdoc.in b/util/ntp-keygen.mdoc.in
index d94c7db095fc..da99a8deb64f 100644
--- a/util/ntp-keygen.mdoc.in
+++ b/util/ntp-keygen.mdoc.in
@@ -1,9 +1,9 @@
-.Dd December 19 2014
+.Dd February 4 2015
.Dt NTP_KEYGEN @NTP_KEYGEN_MS@ User Commands
.Os
.\" EDIT THIS FILE WITH CAUTION (ntp-keygen-opts.mdoc)
.\"
-.\" It has been AutoGen-ed December 19, 2014 at 07:50:58 AM by AutoGen 5.18.5pre4
+.\" It has been AutoGen-ed February 4, 2015 at 02:44:02 AM by AutoGen 5.18.5pre4
.\" From the definitions ntp-keygen-opts.def
.\" and the template file agmdoc-cmd.tpl
.Sh NAME
@@ -1051,9 +1051,9 @@ libopts had an internal operational error. Please report
it to autogen\-users@lists.sourceforge.net. Thank you.
.El
.Sh "AUTHORS"
-The University of Delaware
+The University of Delaware and Network Time Foundation
.Sh "COPYRIGHT"
-Copyright (C) 1970\-2014 The University of Delaware all rights reserved.
+Copyright (C) 1992\-2015 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,
diff --git a/util/ntptime.c b/util/ntptime.c
index dd5605ca7b30..5a6c1d1642a0 100644
--- a/util/ntptime.c
+++ b/util/ntptime.c
@@ -98,15 +98,16 @@ main(
volatile unsigned ts_mask = TS_MASK; /* defaults to 20 bits (us) */
volatile unsigned ts_roundbit = TS_ROUNDBIT; /* defaults to 20 bits (us) */
volatile int fdigits = 6; /* fractional digits for us */
- int c;
+ size_t c;
+ int ch;
int errflg = 0;
int cost = 0;
volatile int rawtime = 0;
ZERO(ntx);
progname = argv[0];
- while ((c = ntp_getopt(argc, argv, optargs)) != EOF) {
- switch (c) {
+ while ((ch = ntp_getopt(argc, argv, optargs)) != EOF) {
+ switch (ch) {
#ifdef MOD_MICRO
case 'M':
ntx.modes |= MOD_MICRO;
@@ -467,7 +468,7 @@ timex_state(
{
static char buf[32];
- if (s >= 0 && s < COUNTOF(timex_states))
+ if ((size_t)s < COUNTOF(timex_states))
return timex_states[s];
snprintf(buf, sizeof(buf), "TIME-#%d", s);
return buf;