home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #18 / NN_1992_18.iso / spool / comp / protocol / time / ntp / 818 < prev    next >
Encoding:
Internet Message Format  |  1992-08-18  |  19.1 KB

  1. Path: sparky!uunet!cis.ohio-state.edu!ucbvax!nmr.lpc.ethz.ch!maer
  2. From: maer@nmr.lpc.ethz.ch (Matthias Ernst)
  3. Newsgroups: comp.protocols.time.ntp
  4. Subject: Patch and Configfiles for xntp3
  5. Message-ID: <9208181237.AA08263@curie.ethz.ch>
  6. Date: 18 Aug 92 12:37:40 GMT
  7. Sender: daemon@ucbvax.BERKELEY.EDU
  8. Distribution: inet
  9. Organization: The Internet
  10. Lines: 514
  11.  
  12. Hi Dave,
  13.  
  14. I have a patch for the newest version (16 August 1992) of xntp3.
  15. There is a problem with the formatting of the output in ntpq if
  16. you run a command with multiple hosts on the commandline like
  17. "ntpq -p ...". If the names are aliases and the full hostname is
  18. longer the format gets mixed up. The patch fixes this problem by
  19. doing a hostnamelookup before determining the length of the name.
  20.  
  21. I have also updated/created a Config/README file for the RS6000 
  22. and for Silicon Graphics SGI machines. You will find the files 
  23. Config.rs6000, Config.sgi and README.sgi attached to this mail.
  24. The Config file for the SGI works at least for IRIX 4.0.1, but 
  25. I have not tested the special features like local clock support.
  26. For the SGI no change of the source code was required.
  27.  
  28. Please include this in the general distribution.
  29.  
  30. Thanks
  31.  
  32. Matthias
  33.  
  34. --------------------------------------------------------------------------
  35. #! /bin/sh
  36. # This is a shell archive.  Remove anything before this line, then unpack
  37. # it by saving it into a file and typing "sh file".  To overwrite existing
  38. # files, type "sh file -c".  You can also feed this as standard input via
  39. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  40. # will see the following message at the end:
  41. #        "End of shell archive."
  42. # Contents:  Config.sgi README.sgi Config.rs6000 patchfile
  43. # Wrapped by maer@curie on Tue Aug 18 14:33:15 1992
  44. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  45. if test -f 'Config.sgi' -a "${1}" != "-c" ; then 
  46.   echo shar: Will not clobber existing file \"'Config.sgi'\"
  47. else
  48. echo shar: Extracting \"'Config.sgi'\" \(6809 characters\)
  49. sed "s/^X//" >'Config.sgi' <<'END_OF_FILE'
  50. X# Edit this file to reflect information specific to your installation.
  51. X# Then run 'make makefiles' to propagate the information to all the makefiles,
  52. X
  53. X#
  54. X# Definitions for the library:
  55. X#
  56. X# You must define one of -DXNTP_BIG_ENDIAN, -DXNTP_LITTLE_ENDIAN
  57. X#       or -DXNTP_AUTO_ENDIAN depending on which way your machine's
  58. X#       bytes go for the benefit of the DES routine.  Most things
  59. X#       sold by DEC, the NS32x32 and the 80386 deserve a
  60. X#       -DXNTP_LITTLE_ENDIAN.  Most of the rest of the world does
  61. X#       it the other way.  If in doubt, pick one, compile
  62. X#       everything and run authstuff/authcert < authstuff/certdata.
  63. X#       If everything fails, do it the other way.
  64. X#
  65. X#       Under BSD, you may define -DXNTP_NETINET_ENDIAN to use
  66. X#       netinet/in.h to determine which of -DXNTP_BIG_ENDIAN and
  67. X#       XNTP_LITTLE_ENDIAN should be used.
  68. X#
  69. XLIBDEFS= -DXNTP_AUTO_ENDIAN
  70. X
  71. X#
  72. X# Library loading:
  73. X#
  74. X# If you don't want your library ranlib'ed, chose the second line
  75. X#
  76. X#RANLIB=        ranlib
  77. XRANLIB=    ls # ar does the work of ranlib under System V
  78. X
  79. X#
  80. X# Definitions for programs:
  81. X# 
  82. X# If your compiler doesn't understand the declaration `signed char',
  83. X#       add -DNO_SIGNED_CHAR_DECL.  Your `char' data type had better be
  84. X#    signed.  If you don't know what the compiler knows, try it
  85. X#    without the flag.  If you get a syntax error on line 13 of
  86. X#    ntp.h, add it.  Note that `signed char' is an ANSIism.  Most
  87. X#    older, pcc-derived compilers will need this flag.
  88. X#
  89. X# If your library already has 's_char' defined, add -DS_CHAR_DEFINED.
  90. X#
  91. X# For SunOS 3.x, add -DSUN_3_3_STINKS (otherwise it will complain
  92. X#    about broadaddr and will hang if you run without a -d flag
  93. X#    on the command line.  I actually can't believe the latter
  94. X#    bug.  If it hangs on your system with the flag defined, peruse
  95. X#    xntpd/ntp_io.c for some rude comments about SunOS 3.5 and try it
  96. X#    the other way).  This flag affects xntpd only.
  97. X#
  98. X# For Ultrix 2.0, add -DULT_2_0_SUCKS.  This OS has the same hanging
  99. X#    bug as SunOS 3.5 (is this an original 4.2 bug?) and in addition
  100. X#    has some strangeness concerning signal masks.  Ultrix 2.3 doesn't
  101. X#    have these problems.  If you're running something in between
  102. X#    you're on your own.  This flag affects xntpd only.
  103. X#
  104. X# For SunOS 4.x, add -DDOSYNCTODR_SUCKS to include the code in ntp_util.c
  105. X#    that sets the battery clock at the same time that it updates
  106. X#    the driftfile. It does this by revving up the niceness, then
  107. X#    sets the time of day to the current time of day. Ordinarily,
  108. X#    you would need this only on non-networked machines.
  109. X#
  110. X# There are three ways to pry loose the kernel variables tick and tickadj
  111. X#    needed by ntp_unixclock.c.  One reads kmem and and is enabled
  112. X#    with -DREADKMEM.  One uses Sun's libkvm and is enabled with
  113. X#    -DUSELIBKVM. The last one uses builtin defaults and is enabled
  114. X#    with -DNOKMEM. Therefore, one of -DUSELIBKVM, -DREADKMEM or
  115. X#    -DNOKMEM must be defined. Suns and recent BSD should use
  116. X#    -DUSELIBKVM; others should use -DREADKMEM. If -DUSELIBKVM, use
  117. X#    the DAEMONLIBS below to get the kernel routines.
  118. X#
  119. X# If your gethostbyname() routine isn't based on the DNS resolver (and,
  120. X#    in particular, h_errno doesn't exist) add a -DNODNS.  There
  121. X#    doesn't seem to be a good way to detect this automatically which
  122. X#    works in all cases.  This flag affects xntpres only.
  123. X#
  124. X# The flag -DDEBUG includes some debugging code.
  125. X#
  126. X# The flag -DREFCLOCK causes the basic reference clock support to be
  127. X#    compiled into the daemon.  If you set this you will also want
  128. X#    to configure the particular clock drivers you want in the
  129. X#    CLOCKDEFS= line below.  This flag affects xntpd only.
  130. X#
  131. X# There is an occurance of a call to rindex() in the daemon.  You may
  132. X#    have to include a -Drindex=strrchr to get this to load right.
  133. X#
  134. X# To change the location of the configuration file, use a
  135. X#    -DCONFIG_FILE=\\"/local/etc/ntp.conf\\" or something similar.
  136. X#
  137. X# Under HP-UX, you must use either -Dhpux70 or -Dhpux80 as,
  138. X#    well as -DNOKMEM
  139. X#
  140. X# If your library doesn't include the vsprintf() routine, define
  141. X#    NEED_VSPRINTF.
  142. X#
  143. X# Define -DPPS to include support for a 1-pps signal. Define -DPPSDEV
  144. X#    to include a device driver for it. The latter requires a
  145. X#    serial port and either a line discipline or STREAMS module.
  146. X#    The PPS signal may also be generated via a reference clock
  147. X#    module like DCF77. In that case a special define is required for
  148. X#    the reference clock module (only one source of PPS signal should
  149. X#    be used)
  150. X#
  151. X# Define -D_BSD_SIGNALS for SGI IRIX 4.1 and NOKMEM
  152. X#
  153. XDEFS= -DREFCLOCK -DNOKMEM -DDEBUG -D_BSD_SIGNALS
  154. X
  155. X#
  156. X#  Authentication types supported.  Choose from DES and MD5.  If you
  157. X#  have a 680x0 type CPU and GNU-C, also choose -DFASTMD5
  158. X#
  159. XAUTHDEFS=-DDES -DMD5
  160. X
  161. X#
  162. X# Clock support definitions (these only make sense if -DREFCLOCK used):
  163. X#
  164. X# Define -DLOCAL_CLOCK to include local pseudo-clock support
  165. X#
  166. X# Define -DPST to include support for the PST 1020 WWV/H receiver.
  167. X#
  168. X# Define -DWWVB to include support for the Spectracom 8170 WWVB receiver.
  169. X#
  170. X# Define -DCHU to include support for a driver to receive the CHU
  171. X#    timecode.  Note that to compile in CHU support you must
  172. X#    previously have installed the CHU serial line discipline in
  173. X#    the kernel of the machine you are doing the compile on.
  174. X#
  175. X# Define -DDCF to include support for the DCF77 receiver. This code
  176. X#    requires a special STREAMS module found in the kernel directory.
  177. X# Define -DDCFPPS for PPS support via the DCF77 receiver
  178. X#    (see also: -DPPS)
  179. X#
  180. X# Define -DGOES to support a Kinemetrics TrueTime 468-DC GOES receiver.
  181. X#
  182. XCLOCKDEFS= -DLOCAL_CLOCK
  183. X
  184. X#
  185. X# For MIPS 4.3BSD or RISCos 4.0, include a -lmld to get the nlist() routine.
  186. X#    If USELIBKVM is defined above, include a -lkvm to get the kernel
  187. X#    routines.
  188. X#
  189. XDAEMONLIBS= -lmld
  190. X#DAEMONLIBS= -lkvm
  191. X#DAEMONLIBS=
  192. X
  193. X#
  194. X# Name resolver library.  Included when loading xntpres, which calls
  195. X# gethostbyname().  Define this if you would rather use a different
  196. X# version of the routine than the one in libc.a
  197. X#
  198. X#RESLIB= -lresolv
  199. XRESLIB=
  200. X
  201. X#
  202. X# Option flags for the C compiler.  A -g if you are uncomfortable
  203. X#
  204. XCOPTS= -cckr -O
  205. X
  206. X#
  207. X# C compiler to use.  gcc will work, but avoid the -fstrength-reduce option
  208. X# if the version is 1.35 or earlier (using this option caused incorrect
  209. X# code to be generated in the DES key permutation code, and perhaps
  210. X# elsewhere).
  211. X#
  212. XCOMPILER= cc
  213. X
  214. X#
  215. X# Directory into which binaries should be installed
  216. X#
  217. XBINDIR=    /usr/local
  218. X
  219. X#
  220. X# Special library for adjtime emulation. Used under HP-UX
  221. X# (remember to run make in the adjtime directory)
  222. X#
  223. X#ADJLIB= ../adjtime/libadjtime.a
  224. XADJLIB=
  225. X
  226. X#
  227. X# BSD emulation library. In theory, this fixes signal semantics under
  228. X# HP-UX, but it doesn't work with 8.0 on a 9000s340, so there is now
  229. X# a work-around in the code (compiled when hpux80 is defined). In other
  230. X# words, use this for HP-UX prior to 8.0.
  231. X#
  232. X#COMPAT= -lBSD
  233. XCOMPAT=
  234. X
  235. END_OF_FILE
  236. if test 6809 -ne `wc -c <'Config.sgi'`; then
  237.     echo shar: \"'Config.sgi'\" unpacked with wrong size!
  238. fi
  239. # end of 'Config.sgi'
  240. fi
  241. if test -f 'README.sgi' -a "${1}" != "-c" ; then 
  242.   echo shar: Will not clobber existing file \"'README.sgi'\"
  243. else
  244. echo shar: Extracting \"'README.sgi'\" \(540 characters\)
  245. sed "s/^X//" >'README.sgi' <<'END_OF_FILE'
  246. XThe config file for the SGI works for IRIX Release 4.0.1. It uses the BSD
  247. Xcompatibility mode (-D_BSD_SIGNALS) for signal handling and the hardwired
  248. Xvalues for tick and tickadj (-DNOKMEM). I tested ntpq xntpdc and xntpd but
  249. Xnone of the special features. Local clock support is untested.
  250. XSet DAEMONLIBS to -lmld  in order to make nlist work.
  251. XNo changes in the source code were required.
  252. XOne problem is that make clean doesn't work. Make complains about no match
  253. Xand aborts.
  254. X
  255. XMatthias Ernst, ETH-Zuerich, Switzerland  -  maer@nmr.lpc.ethz.ch
  256. X
  257. END_OF_FILE
  258. if test 540 -ne `wc -c <'README.sgi'`; then
  259.     echo shar: \"'README.sgi'\" unpacked with wrong size!
  260. fi
  261. # end of 'README.sgi'
  262. fi
  263. if test -f 'Config.rs6000' -a "${1}" != "-c" ; then 
  264.   echo shar: Will not clobber existing file \"'Config.rs6000'\"
  265. else
  266. echo shar: Extracting \"'Config.rs6000'\" \(6768 characters\)
  267. sed "s/^X//" >'Config.rs6000' <<'END_OF_FILE'
  268. X# Edit this file to reflect information specific to your installation.
  269. X# Then run 'make makefiles' to propagate the information to all the makefiles,
  270. X
  271. X#
  272. X# Definitions for the library:
  273. X#
  274. X# You must define one of -DXNTP_BIG_ENDIAN, -DXNTP_LITTLE_ENDIAN
  275. X#       or -DXNTP_AUTO_ENDIAN depending on which way your machine's
  276. X#       bytes go for the benefit of the DES routine.  Most things
  277. X#       sold by DEC, the NS32x32 and the 80386 deserve a
  278. X#       -DXNTP_LITTLE_ENDIAN.  Most of the rest of the world does
  279. X#       it the other way.  If in doubt, pick one, compile
  280. X#       everything and run authstuff/authcert < authstuff/certdata.
  281. X#       If everything fails, do it the other way.
  282. X#
  283. X#       Under BSD, you may define -DXNTP_NETINET_ENDIAN to use
  284. X#       netinet/in.h to determine which of -DXNTP_BIG_ENDIAN and
  285. X#       XNTP_LITTLE_ENDIAN should be used.
  286. X#
  287. XLIBDEFS= -DXNTP_AUTO_ENDIAN -DRS6000
  288. X
  289. X#
  290. X# Library loading:
  291. X#
  292. X# If you don't want your library ranlib'ed, chose the second line
  293. X#
  294. X#RANLIB=        ranlib
  295. XRANLIB=    : # ar does the work of ranlib under System V
  296. X
  297. X#
  298. X# Definitions for programs:
  299. X# 
  300. X# If your compiler doesn't understand the declaration `signed char',
  301. X#       add -DNO_SIGNED_CHAR_DECL.  Your `char' data type had better be
  302. X#    signed.  If you don't know what the compiler knows, try it
  303. X#    without the flag.  If you get a syntax error on line 13 of
  304. X#    ntp.h, add it.  Note that `signed char' is an ANSIism.  Most
  305. X#    older, pcc-derived compilers will need this flag.
  306. X#
  307. X# If your library already has 's_char' defined, add -DS_CHAR_DEFINED.
  308. X#
  309. X# For SunOS 3.x, add -DSUN_3_3_STINKS (otherwise it will complain
  310. X#    about broadaddr and will hang if you run without a -d flag
  311. X#    on the command line.  I actually can't believe the latter
  312. X#    bug.  If it hangs on your system with the flag defined, peruse
  313. X#    xntpd/ntp_io.c for some rude comments about SunOS 3.5 and try it
  314. X#    the other way).  This flag affects xntpd only.
  315. X#
  316. X# For Ultrix 2.0, add -DULT_2_0_SUCKS.  This OS has the same hanging
  317. X#    bug as SunOS 3.5 (is this an original 4.2 bug?) and in addition
  318. X#    has some strangeness concerning signal masks.  Ultrix 2.3 doesn't
  319. X#    have these problems.  If you're running something in between
  320. X#    you're on your own.  This flag affects xntpd only.
  321. X#
  322. X# For SunOS 4.x, add -DDOSYNCTODR_SUCKS to include the code in ntp_util.c
  323. X#    that sets the battery clock at the same time that it updates
  324. X#    the driftfile. It does this by revving up the niceness, then
  325. X#    sets the time of day to the current time of day. Ordinarily,
  326. X#    you would need this only on non-networked machines.
  327. X#
  328. X# There are three ways to pry loose the kernel variables tick and tickadj
  329. X#    needed by ntp_unixclock.c.  One reads kmem and and is enabled
  330. X#    with -DREADKMEM.  One uses Sun's libkvm and is enabled with
  331. X#    -DUSELIBKVM. The last one uses builtin defaults and is enabled
  332. X#    with -DNOKMEM. Therefore, one of -DUSELIBKVM, -DREADKMEM or
  333. X#    -DNOKMEM must be defined. Suns and recent BSD should use
  334. X#    -DUSELIBKVM; others should use -DREADKMEM. If -DUSELIBKVM, use
  335. X#    the DAEMONLIBS below to get the kernel routines.
  336. X#
  337. X# If your gethostbyname() routine isn't based on the DNS resolver (and,
  338. X#    in particular, h_errno doesn't exist) add a -DNODNS.  There
  339. X#    doesn't seem to be a good way to detect this automatically which
  340. X#    works in all cases.  This flag affects xntpres only.
  341. X#
  342. X# The flag -DDEBUG includes some debugging code.
  343. X#
  344. X# The flag -DREFCLOCK causes the basic reference clock support to be
  345. X#    compiled into the daemon.  If you set this you will also want
  346. X#    to configure the particular clock drivers you want in the
  347. X#    CLOCKDEFS= line below.  This flag affects xntpd only.
  348. X#
  349. X# There is an occurance of a call to rindex() in the daemon.  You may
  350. X#    have to include a -Drindex=strrchr to get this to load right.
  351. X#
  352. X# To change the location of the configuration file, use a
  353. X#    -DCONFIG_FILE=\\"/local/etc/ntp.conf\\" or something similar.
  354. X#
  355. X# Under HP-UX, you must use either -Dhpux70 or -Dhpux80 as,
  356. X#    well as -DNOKMEM
  357. X#
  358. X# If your library doesn't include the vsprintf() routine, define
  359. X#    NEED_VSPRINTF.
  360. X#
  361. X# Define -DPPS to include support for a 1-pps signal. Define -DPPSDEV
  362. X#    to include a device driver for it. The latter requires a
  363. X#    serial port and either a line discipline or STREAMS module.
  364. X#    The PPS signal may also be generated via a reference clock
  365. X#    module like DCF77. In that case a special define is required for
  366. X#    the reference clock module (only one source of PPS signal should
  367. X#    be used)
  368. X#
  369. XDEFS= -DREFCLOCK -DNOKMEM -DRS6000 -DBIGTIMESTEP -DDEBUG
  370. X
  371. X#
  372. X#  Authentication types supported.  Choose from DES and MD5.  If you
  373. X#  have a 680x0 type CPU and GNU-C, also choose -DFASTMD5
  374. X#
  375. XAUTHDEFS=-DDES -DMD5
  376. X
  377. X#
  378. X# Clock support definitions (these only make sense if -DREFCLOCK used):
  379. X#
  380. X# Define -DLOCAL_CLOCK to include local pseudo-clock support
  381. X#
  382. X# Define -DPST to include support for the PST 1020 WWV/H receiver.
  383. X#
  384. X# Define -DWWVB to include support for the Spectracom 8170 WWVB receiver.
  385. X#
  386. X# Define -DCHU to include support for a driver to receive the CHU
  387. X#    timecode.  Note that to compile in CHU support you must
  388. X#    previously have installed the CHU serial line discipline in
  389. X#    the kernel of the machine you are doing the compile on.
  390. X#
  391. X# Define -DDCF to include support for the DCF77 receiver. This code
  392. X#    requires a special STREAMS module found in the kernel directory.
  393. X# Define -DDCFPPS for PPS support via the DCF77 receiver
  394. X#    (see also: -DPPS)
  395. X#
  396. X# Define -DGOES to support a Kinemetrics TrueTime 468-DC GOES receiver.
  397. X#
  398. XCLOCKDEFS= -DLOCAL_CLOCK
  399. X
  400. X#
  401. X# For MIPS 4.3BSD or RISCos 4.0, include a -lmld to get the nlist() routine.
  402. X#    If USELIBKVM is defined above, include a -lkvm to get the kernel
  403. X#    routines.
  404. X#
  405. X#DAEMONLIBS= -lmld
  406. X#DAEMONLIBS= -lkvm
  407. XDAEMONLIBS=
  408. X
  409. X#
  410. X# Name resolver library.  Included when loading xntpres, which calls
  411. X# gethostbyname().  Define this if you would rather use a different
  412. X# version of the routine than the one in libc.a
  413. X#
  414. X#RESLIB= -lresolv
  415. XRESLIB=
  416. X
  417. X#
  418. X# Option flags for the C compiler.  A -g if you are uncomfortable
  419. X#
  420. XCOPTS= -O
  421. X
  422. X#
  423. X# C compiler to use.  gcc will work, but avoid the -fstrength-reduce option
  424. X# if the version is 1.35 or earlier (using this option caused incorrect
  425. X# code to be generated in the DES key permutation code, and perhaps
  426. X# elsewhere).
  427. X#
  428. XCOMPILER= bsdcc
  429. X
  430. X#
  431. X# Directory into which binaries should be installed
  432. X#
  433. XBINDIR=    /usr/local
  434. X
  435. X#
  436. X# Special library for adjtime emulation. Used under HP-UX
  437. X# (remember to run make in the adjtime directory)
  438. X#
  439. X#ADJLIB= ../adjtime/libadjtime.a
  440. XADJLIB=
  441. X
  442. X#
  443. X# BSD emulation library. In theory, this fixes signal semantics under
  444. X# HP-UX, but it doesn't work with 8.0 on a 9000s340, so there is now
  445. X# a work-around in the code (compiled when hpux80 is defined). In other
  446. X# words, use this for HP-UX prior to 8.0.
  447. X#
  448. X#COMPAT= -lBSD
  449. XCOMPAT=
  450. X
  451. END_OF_FILE
  452. if test 6768 -ne `wc -c <'Config.rs6000'`; then
  453.     echo shar: \"'Config.rs6000'\" unpacked with wrong size!
  454. fi
  455. # end of 'Config.rs6000'
  456. fi
  457. if test -f 'patchfile' -a "${1}" != "-c" ; then 
  458.   echo shar: Will not clobber existing file \"'patchfile'\"
  459. else
  460. echo shar: Extracting \"'patchfile'\" \(1142 characters\)
  461. sed "s/^X//" >'patchfile' <<'END_OF_FILE'
  462. X*** ntpq/ntpq_ops.c    Tue Aug 18 14:23:09 1992
  463. X--- ntpq/ntpq_ops.c.orig    Tue Aug 18 14:06:22 1992
  464. X***************
  465. X*** 127,133 ****
  466. X   * Variable list data space
  467. X   */
  468. X  #define    MAXLIST        64    /* maximum number of variables in list */
  469. X- #define    LENHOSTNAME    256    /* host name is 256 characters long */
  470. X  /*
  471. X   * Old CTL_PST defines for version 2.
  472. X   */
  473. X--- 127,132 ----
  474. X***************
  475. X*** 1465,1483 ****
  476. X      FILE *fp;
  477. X  {
  478. X      register int i;
  479. X-     extern int getnetnum();
  480. X-     char fullname[LENHOSTNAME];
  481. X-     u_long netnum;
  482. X  
  483. X- 
  484. X      if (!dogetassoc(fp))
  485. X          return;
  486. X  
  487. X      for (i = 0; i < numhosts; ++i)
  488. X!     { if(getnetnum(chosts[i],&netnum,fullname))
  489. X!         if (strlen(fullname) > maxhostlen)
  490. X!             maxhostlen = strlen(fullname);
  491. X!     }
  492. X      if (numhosts > 1)
  493. X          (void) fprintf(fp, "%-*.*s ", maxhostlen, maxhostlen, "host");
  494. X      (void) fprintf(fp,
  495. X--- 1464,1476 ----
  496. X      FILE *fp;
  497. X  {
  498. X      register int i;
  499. X  
  500. X      if (!dogetassoc(fp))
  501. X          return;
  502. X  
  503. X      for (i = 0; i < numhosts; ++i)
  504. X!         if (strlen(chosts[i]) > maxhostlen)
  505. X!             maxhostlen = strlen(chosts[i]);
  506. X      if (numhosts > 1)
  507. X          (void) fprintf(fp, "%-*.*s ", maxhostlen, maxhostlen, "host");
  508. X      (void) fprintf(fp,
  509. END_OF_FILE
  510. if test 1142 -ne `wc -c <'patchfile'`; then
  511.     echo shar: \"'patchfile'\" unpacked with wrong size!
  512. fi
  513. # end of 'patchfile'
  514. fi
  515. echo shar: End of shell archive.
  516. exit 0
  517.  
  518. +-----------------------------------------------------------------------------+
  519. | Matthias Ernst                          Domain: maer@nmr.lpc.ethz.ch        |
  520. | Institut fuer physikalische Chemie      Bitnet: maer@czheth5a.bitnet        |
  521. | Eidgenoessische Technische Hochschule   UUCP:   ...!mcsun!chx400!ethz!maer  |
  522. | ETH-Zentrum                             Phone:  +41/1/256-4374              |
  523. | CH-8092 Zuerich                         Fax:    +41/1/252-3402              |
  524. +-----------------------------------------------------------------------------+
  525.  
  526.