Change the default for ntpd back to -s, the bug which triggered this
[dragonfly.git] / contrib / ntp / html / hints / winnt
1 -------------
2 INTRODUCTION:
3 -------------
4 Last revision 27 July 1999      Version 4.0.95.
5
6 This version compiles under WINNT with Visual C 6.0.
7
8 Greg Brackley and Sven Dietrich 
9
10 Significant changes:
11 -Visual Studio v6.0 support
12 -Winsock 2.0 support
13 -Use of I/O completion ports for sockets and comm port I/O
14 -Removed the use of multimedia timers (from ntpd, others need removing)
15 -Use of waitable timers (with user mode APC) and performance counters to fake getting a better time
16 -Trimble Palisade NTP Reference Clock support
17 -General cleanup, prototyping of functions
18 -Moved receiver buffer code to a separate module (removed unused members from the recvbuff struct)
19 -Moved io signal code to a separate module
20
21 Compiling Instructions:
22 1. Requires Perl to be installed, and the Perl environment variable to be set correctly
23 2. Open the .\ports\winnt\ntp.dsw
24 3. Batch build of all debug projects compile
25
26
27 Last revision:  20-Oct-1996
28
29 This version corrects problems with building the XNTP 
30 version 3.5-86 distribution under Windows NT.
31
32 The following files were modified:
33         blddbg.bat
34         bldrel.bat
35         include\ntp_machine.h
36         xntpd\ntp_unixclock.c
37         xntpd\ntp_refclock.c
38         scripts\wininstall\build.bat
39         scripts\wininstall\setup.rul
40         scripts\wininstall\readme.nt
41         scripts\wininstall\distrib\ntpog.wri
42         html\hints\winnt (this file)
43
44 In order to build the entire Windows NT distribution you
45 need to modify the file scripts\wininstall\build.bat
46 with the installation directory of the InstallShield 
47 software.  Then, simply type "bldrel" for non-debug 
48 or "blddbg" for debug executables.
49
50
51
52 Greg Schueman
53     <schueman@acm.org>
54
55
56 Last revision:  07-May-1996
57
58 This set of changes fixes all known bugs, and it includes 
59 several major enhancements.
60
61 Many changes have been made both to the build environment as
62 well as the code.  There is no longer an ntp.mak file, instead
63 there is a buildntall.bat file that will build the entire 
64 release in one shot.  The batch file requires Perl.  Perl
65 is easily available from the NT Resource Kit or on the Net.
66
67 The multiple interface support was adapted from Larry Kahn's
68 work on the BIND NT port.  I have not been able to test it
69 adequately as I only have NT servers with one network 
70 interfaces on which to test.  
71
72 Enhancements:
73 *       Event Logging now works correctly.
74 *       Version numbers now work (requires Perl during build)
75 *       Support for multiple network interface cards (untested)
76 *       NTP.CONF now default, but supports ntp.ini if not found
77 *       Installation procedure automated.
78 *       All paths now allow environment variables such as %windir%
79
80 Bug fixes:
81 *       INSTSRV replaced, works correctly
82 *       Cleaned up many warnings
83 *       Corrected use of an uninitialized variable in XNTPD
84 *       Fixed ntpdate -b option
85 *       Fixed ntpdate to accept names as well as IP addresses
86         (Winsock WSAStartup was called after a gethostbyname())
87 *       Fixed problem with "longjmp" in xntpdc/ntpdc.c that 
88         caused a software exception on doing a Control-C in xntpdc.
89         A Cntrl-C now terminates the program. 
90
91 See below for more detail:
92
93       Note: SIGINT is not supported for any Win32 application including 
94       Windows NT and Windows 95. When a CTRL+C interrupt occurs, Win32 
95       operating systems generate a new thread to specifically handle that 
96       interrupt. This can cause a single-thread application such as UNIX, 
97       to become multithreaded, resulting in unexpected behavior. 
98
99
100 Possible enhancements and things left to do:
101 *       Reference clock drivers for NT (at least Local Clock support)
102 *       Control Panel Applet
103 *       InstallShield based installation, like NT BIND has
104 *       Integration with NT Performance Monitor
105 *       SNMP integration
106 *       Fully test multiple interface support
107
108
109 Known problems:
110 *       bug in ntptrace - if no Stratum 1 servers are available,
111                 such as on an IntraNet, the application crashes.
112
113
114
115
116 Last revision:  12-Apr-1995
117
118
119 This NTPv3 distribution includes a sample configuration file and the project
120 makefiles for WindowsNT 3.5 platform using Microsoft Visual C++ 2.0 compiler.
121 Also included is a small routine to install the NTP daemon as a "service" 
122 on a WindowsNT box. Besides xntpd, the utilities that have been ported are 
123 ntpdate and xntpdc. The port to WindowsNT 3.5 has been tested using a Bancomm
124 TimeServe2000 GPS receiver clock that acts as a strata 1 NTP server with no 
125 authentication (it has not been tested with any refclock drivers compiled in).
126 Following are the known flaws in this port:
127 1) currently, I do not know of a way in NT to get information about multiple
128    network interface cards. The current port uses just one socket bound to
129    INADDR_ANY address. Therefore when dealing with a multihomed NT time server,
130    clients should point to the default address on the server (otherwise the
131    reply is not guaranteed to come from the same interface to which the 
132    request was sent). Working with Microsoft to get this resolved.
133 2) There is some problem with "longjmp" in xntpdc/ntpdc.c that causes a 
134    software exception on doing a Control-C in xntpdc. Be patient!
135 3) The error messages logged by xntpd currently contain only the numerical
136    error code. Corresponding error message string has to be looked up in
137    "Books Online" on Visual C++ 2.0 under the topic "Numerical List of Error
138    Codes".
139
140
141 ----------------------------------------------------
142 MAKING XNTPD FOR WindowsNT 3.5 using Visual C++ 2.0:
143 ----------------------------------------------------
144
145 Separate projects are needed for xntpd, ntpdate, xntpdc, and the library
146 containing routines used by them.
147
148 1) First build the static library composed of routines in the lib
149    subdirectory of the distribution. Load the project by opening the 
150    corresponding makefile libntp.mak (in the lib subdirectory of the 
151    distribution) by choosing the Open option in the File menu. This should
152    display a list of files contained in this project. Then choose the 
153    "Rebuild All" option from the Project menu in order to compile the
154    routines into a library. The libntp.lib static library is created in
155    the lib/WinDebug directory
156
157    You can now choose to build xntpd, ntpdate, and xntpdc in any order.
158
159 2) To build xntpd, load the project by opening the corresponding makefile
160    xntpd.mak (in the xntpd subdirectory of the distribution), and rebuild
161    all files. The xntpd.exe executable is created in the xntpd/WinDebug
162    directory.
163
164 3) repeat the above step for ntpdate and xntpdc
165
166
167 -------------------------------------------------
168 INSTALLING XNTPD AS A SERVICE UNDER WindowsNT 3.5
169 -------------------------------------------------
170
171 At this point you need to install 'xntpd' as a service. First modify the
172 sample configuration file conf/config.winnt35 in the distribution to
173 suit your needs. Then install it as "%SystemRoot%\NTP.INI" (%SystemRoot%
174 is an environmental variable that can be determined by typing "set" at 
175 the "Command Prompt" or from the "System" icon in the "Control Panel",
176 NTP.INI is the suggested name for the "ntp.conf" file in Windows environment).
177 The instsrv.c program in the util subdirectory of the distribution can 
178 be used to install 'xntpd' as a service and start automatically at boot 
179 time. Compile instsrv.c, and enter form the command prompt 
180       "instsrv.exe NetWorkTimeProtocol <pathname_for_xntd.exe>"
181 Clicking on the "Services" icon in the "Control Panel" ("Main" group
182 in the "Program Manager") will display the list of currently installed
183 services in a dialog box. The NetworkTimeProtocol service should show
184 up in this list. Select it in the list and hit the "Start" button in
185 the dialog box. The NTP service should start. View the event log by
186 clicking on the "Event Viewer" icon in the "Administrative Tools" group
187 of the "Program Manager", there should be several successful startup
188 messages from NTP. NTP will keep running and restart automatically when
189 the machine is rebooted.
190
191 You can change the start mode (automatic/manual) and other startup 
192 parameters correponding to the NTP service (eg. location of conf file)
193 also in the "Services" dialog box if you wish.
194
195 There is no clean way to run 'ntpdate' before starting 'xntpd' at boot
196 time, unlike the Unix environment. 'xntpd' will step the clock upto
197 a 1000 seconds. While there is no reason that the system clock should
198 be that much off during bootup if 'xntpd' was running before bootup,
199 you may want to increase the CLOCK_WAYTOOBIG parameter in include/ntp.h
200 from 1000 to, say, MAXINT.
201
202 You can also use instsrv.c to delete the NTP service
203         "instsrv.exe NetworkTimeProtocol remove"
204
205
206 Viraj Bais
207 <vbais@mailman1.intel.com>
208 -------------
209 INTRODUCTION:
210 -------------
211 Last revision 27 July 1999      Version 4.0.95.
212
213 This version compiles under WINNT with Visual C 6.0.
214
215 Greg Brackley and Sven Dietrich 
216
217 Significant changes:
218 -Visual Studio v6.0 support
219 -Winsock 2.0 support
220 -Use of I/O completion ports for sockets and comm port I/O
221 -Removed the use of multimedia timers (from ntpd, others need removing)
222 -Use of waitable timers (with user mode APC) and performance counters to fake getting a better time
223 -Trimble Palisade NTP Reference Clock support
224 -General cleanup, prototyping of functions
225 -Moved receiver buffer code to a separate module (removed unused members from the recvbuff struct)
226 -Moved io signal code to a separate module
227
228 Compiling Instructions:
229 1. Requires Perl to be installed, and the Perl environment variable to be set correctly
230 2. Open the .\ports\winnt\ntp.dsw
231 3. Batch build of all debug projects compile
232
233
234 Last revision:  20-Oct-1996
235
236 This version corrects problems with building the XNTP 
237 version 3.5-86 distribution under Windows NT.
238
239 The following files were modified:
240         blddbg.bat
241         bldrel.bat
242         include\ntp_machine.h
243         xntpd\ntp_unixclock.c
244         xntpd\ntp_refclock.c
245         scripts\wininstall\build.bat
246         scripts\wininstall\setup.rul
247         scripts\wininstall\readme.nt
248         scripts\wininstall\distrib\ntpog.wri
249         html\hints\winnt (this file)
250
251 In order to build the entire Windows NT distribution you
252 need to modify the file scripts\wininstall\build.bat
253 with the installation directory of the InstallShield 
254 software.  Then, simply type "bldrel" for non-debug 
255 or "blddbg" for debug executables.
256
257
258
259 Greg Schueman
260     <schueman@acm.org>
261
262
263 Last revision:  07-May-1996
264
265 This set of changes fixes all known bugs, and it includes 
266 several major enhancements.
267
268 Many changes have been made both to the build environment as
269 well as the code.  There is no longer an ntp.mak file, instead
270 there is a buildntall.bat file that will build the entire 
271 release in one shot.  The batch file requires Perl.  Perl
272 is easily available from the NT Resource Kit or on the Net.
273
274 The multiple interface support was adapted from Larry Kahn's
275 work on the BIND NT port.  I have not been able to test it
276 adequately as I only have NT servers with one network 
277 interfaces on which to test.  
278
279 Enhancements:
280 *       Event Logging now works correctly.
281 *       Version numbers now work (requires Perl during build)
282 *       Support for multiple network interface cards (untested)
283 *       NTP.CONF now default, but supports ntp.ini if not found
284 *       Installation procedure automated.
285 *       All paths now allow environment variables such as %windir%
286
287 Bug fixes:
288 *       INSTSRV replaced, works correctly
289 *       Cleaned up many warnings
290 *       Corrected use of an uninitialized variable in XNTPD
291 *       Fixed ntpdate -b option
292 *       Fixed ntpdate to accept names as well as IP addresses
293         (Winsock WSAStartup was called after a gethostbyname())
294 *       Fixed problem with "longjmp" in xntpdc/ntpdc.c that 
295         caused a software exception on doing a Control-C in xntpdc.
296         A Cntrl-C now terminates the program. 
297
298 See below for more detail:
299
300       Note: SIGINT is not supported for any Win32 application including 
301       Windows NT and Windows 95. When a CTRL+C interrupt occurs, Win32 
302       operating systems generate a new thread to specifically handle that 
303       interrupt. This can cause a single-thread application such as UNIX, 
304       to become multithreaded, resulting in unexpected behavior. 
305
306
307 Possible enhancements and things left to do:
308 *       Reference clock drivers for NT (at least Local Clock support)
309 *       Control Panel Applet
310 *       InstallShield based installation, like NT BIND has
311 *       Integration with NT Performance Monitor
312 *       SNMP integration
313 *       Fully test multiple interface support
314
315
316 Known problems:
317 *       bug in ntptrace - if no Stratum 1 servers are available,
318                 such as on an IntraNet, the application crashes.
319
320
321
322
323 Last revision:  12-Apr-1995
324
325
326 This NTPv3 distribution includes a sample configuration file and the project
327 makefiles for WindowsNT 3.5 platform using Microsoft Visual C++ 2.0 compiler.
328 Also included is a small routine to install the NTP daemon as a "service" 
329 on a WindowsNT box. Besides xntpd, the utilities that have been ported are 
330 ntpdate and xntpdc. The port to WindowsNT 3.5 has been tested using a Bancomm
331 TimeServe2000 GPS receiver clock that acts as a strata 1 NTP server with no 
332 authentication (it has not been tested with any refclock drivers compiled in).
333 Following are the known flaws in this port:
334 1) currently, I do not know of a way in NT to get information about multiple
335    network interface cards. The current port uses just one socket bound to
336    INADDR_ANY address. Therefore when dealing with a multihomed NT time server,
337    clients should point to the default address on the server (otherwise the
338    reply is not guaranteed to come from the same interface to which the 
339    request was sent). Working with Microsoft to get this resolved.
340 2) There is some problem with "longjmp" in xntpdc/ntpdc.c that causes a 
341    software exception on doing a Control-C in xntpdc. Be patient!
342 3) The error messages logged by xntpd currently contain only the numerical
343    error code. Corresponding error message string has to be looked up in
344    "Books Online" on Visual C++ 2.0 under the topic "Numerical List of Error
345    Codes".
346
347
348 ----------------------------------------------------
349 MAKING XNTPD FOR WindowsNT 3.5 using Visual C++ 2.0:
350 ----------------------------------------------------
351
352 Separate projects are needed for xntpd, ntpdate, xntpdc, and the library
353 containing routines used by them.
354
355 1) First build the static library composed of routines in the lib
356    subdirectory of the distribution. Load the project by opening the 
357    corresponding makefile libntp.mak (in the lib subdirectory of the 
358    distribution) by choosing the Open option in the File menu. This should
359    display a list of files contained in this project. Then choose the 
360    "Rebuild All" option from the Project menu in order to compile the
361    routines into a library. The libntp.lib static library is created in
362    the lib/WinDebug directory
363
364    You can now choose to build xntpd, ntpdate, and xntpdc in any order.
365
366 2) To build xntpd, load the project by opening the corresponding makefile
367    xntpd.mak (in the xntpd subdirectory of the distribution), and rebuild
368    all files. The xntpd.exe executable is created in the xntpd/WinDebug
369    directory.
370
371 3) repeat the above step for ntpdate and xntpdc
372
373
374 -------------------------------------------------
375 INSTALLING XNTPD AS A SERVICE UNDER WindowsNT 3.5
376 -------------------------------------------------
377
378 At this point you need to install 'xntpd' as a service. First modify the
379 sample configuration file conf/config.winnt35 in the distribution to
380 suit your needs. Then install it as "%SystemRoot%\NTP.INI" (%SystemRoot%
381 is an environmental variable that can be determined by typing "set" at 
382 the "Command Prompt" or from the "System" icon in the "Control Panel",
383 NTP.INI is the suggested name for the "ntp.conf" file in Windows environment).
384 The instsrv.c program in the util subdirectory of the distribution can 
385 be used to install 'xntpd' as a service and start automatically at boot 
386 time. Compile instsrv.c, and enter form the command prompt 
387       "instsrv.exe NetWorkTimeProtocol <pathname_for_xntd.exe>"
388 Clicking on the "Services" icon in the "Control Panel" ("Main" group
389 in the "Program Manager") will display the list of currently installed
390 services in a dialog box. The NetworkTimeProtocol service should show
391 up in this list. Select it in the list and hit the "Start" button in
392 the dialog box. The NTP service should start. View the event log by
393 clicking on the "Event Viewer" icon in the "Administrative Tools" group
394 of the "Program Manager", there should be several successful startup
395 messages from NTP. NTP will keep running and restart automatically when
396 the machine is rebooted.
397
398 You can change the start mode (automatic/manual) and other startup 
399 parameters correponding to the NTP service (eg. location of conf file)
400 also in the "Services" dialog box if you wish.
401
402 There is no clean way to run 'ntpdate' before starting 'xntpd' at boot
403 time, unlike the Unix environment. 'xntpd' will step the clock upto
404 a 1000 seconds. While there is no reason that the system clock should
405 be that much off during bootup if 'xntpd' was running before bootup,
406 you may want to increase the CLOCK_WAYTOOBIG parameter in include/ntp.h
407 from 1000 to, say, MAXINT.
408
409 You can also use instsrv.c to delete the NTP service
410         "instsrv.exe NetworkTimeProtocol remove"
411
412
413 Viraj Bais
414 <vbais@mailman1.intel.com>