home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume41 / wwfs / part11 < prev    next >
Text File  |  1994-01-17  |  93KB  |  4,282 lines

  1. Newsgroups: comp.sources.misc
  2. From: youki-k@is.aist-nara.ac.jp (Youki Kadobayashi)
  3. Subject: v41i096:  wwfs - WorldWide File System, Part11/22
  4. Message-ID: <1994Jan17.202312.19971@sparky.sterling.com>
  5. X-Md4-Signature: bd0029767b2f823906c40dfa3a4f2b43
  6. Sender: kent@sparky.sterling.com (Kent Landfield)
  7. Organization: Nara Institute of Science and Technology, Japan
  8. Date: Mon, 17 Jan 1994 20:23:12 GMT
  9. Approved: kent@sparky.sterling.com
  10.  
  11. Submitted-by: youki-k@is.aist-nara.ac.jp (Youki Kadobayashi)
  12. Posting-number: Volume 41, Issue 96
  13. Archive-name: wwfs/part11
  14. Environment: UNIX, inet
  15.  
  16. #! /bin/sh
  17. # This is a shell archive.  Remove anything before this line, then feed it
  18. # into a shell via "sh file" or similar.  To overwrite existing files,
  19. # type "sh file -c".
  20. # Contents:  csd/nfs_reply.c doc/manual.ps.B
  21. #   mosaic/Mosaic-2.0+wwfs.diff
  22. # Wrapped by kent@sparky on Sun Jan 16 17:48:34 1994
  23. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  24. echo If this archive is complete, you will see the following message:
  25. echo '          "shar: End of archive 11 (of 22)."'
  26. if test -f 'csd/nfs_reply.c' -a "${1}" != "-c" ; then 
  27.   echo shar: Will not clobber existing file \"'csd/nfs_reply.c'\"
  28. else
  29.   echo shar: Extracting \"'csd/nfs_reply.c'\" \(9289 characters\)
  30.   sed "s/^X//" >'csd/nfs_reply.c' <<'END_OF_FILE'
  31. X/* 
  32. X * WorldWide File System
  33. X * Copyright (c) 1992,1993 Youki Kadobayashi
  34. X * Copyright (c) 1992,1993 Osaka University
  35. X * All rights reserved.
  36. X *
  37. X * Permission to use, copy, modify and distribute this software and its
  38. X * documentation is hereby granted, provided that the following conditions
  39. X * are met:
  40. X * 1. Both the copyright notice and this permission notice appear in
  41. X *    all copies of the software, derivative works or modified versions,
  42. X *    and any portions thereof, and that both notices appear in
  43. X *    supporting documentation.
  44. X * 2. All advertising materials mentioning features or use of this software
  45. X *    must display the following acknowledgement:
  46. X *      This product includes software developed by the Osaka University
  47. X *      and its contributors.
  48. X * 3. Neither the name of the University nor the names of its contributors
  49. X *    may be used to endorse or promote products derived from this software
  50. X *    without specific prior written permission.
  51. X *
  52. X * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND OSAKA
  53. X * UNIVERSITY DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
  54. X * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  55. X *
  56. X * Osaka University requests users of this software to return to
  57. X *
  58. X *  Youki Kadobayashi
  59. X *  Department of Information and Computer Sciences
  60. X *  Osaka University, Toyonaka 560, Osaka, Japan
  61. X *
  62. X * any improvements or extensions that they make and grant Osaka
  63. X * University the rights to redistribute these changes.
  64. X */
  65. X/* NFS reply */
  66. Xstatic char *AtFSid = "$Header: nfs_reply.c[109.0] Wed Nov 24 03:47:13 1993 youki-k@is.aist-nara.ac.jp saved $";
  67. X
  68. X#include <sys/file.h>        /* for O_RDONLY */
  69. X#include "wfs.h"
  70. X#include "util.h"
  71. X#include "global.h"
  72. X
  73. X/* translation of WFS semantics to NFS errno */
  74. Xstatic nfsstat nfserr[] = {
  75. X    NFS_OK,        /* WF_REP_OK: no error */
  76. X    NFSERR_PERM,    /* WF_ERR_PERM: Not owner */
  77. X    NFSERR_NOENT,    /* WF_ERR_NOENT: No such entity */
  78. X    NFSERR_IO,    /* WF_ERR_IO: I/O error */
  79. X    NFSERR_NXIO,    /* WF_ERR_NXIO: No such device or address */
  80. X    NFSERR_ACCES,    /* WF_ERR_ACCES: Permission denied */
  81. X    NFSERR_EXIST,    /* WF_ERR_EXIST: Given resource exists */
  82. X    NFSERR_NODEV,    /* WF_ERR_NODEV: No such device */
  83. X    NFSERR_NOTDIR,    /* WF_ERR_NOTDIR: Not a directory*/
  84. X    NFSERR_ISDIR,    /* WF_ERR_ISDIR: Is a directory */
  85. X    NFSERR_FBIG,    /* WF_ERR_FBIG: Resource too large */
  86. X    NFSERR_NOSPC,    /* WF_ERR_NOSPC: No space left on device */
  87. X    NFSERR_ROFS,    /* WF_ERR_ROFS: Read-only file system */
  88. X    NFSERR_NAMETOOLONG, /* WF_ERR_NAMETOOLONG: Resource name too long */
  89. X    NFSERR_NOTEMPTY, /* WF_ERR_NOTEMPTY: Directory not empty */
  90. X    NFSERR_DQUOT,    /* WF_ERR_DQUOT: Disc quota exceeded */
  91. X    NFSERR_STALE,    /* WF_ERR_STALE: Stale file handle */
  92. X    NFSERR_WFLUSH,    /* WF_ERR_WFLUSH: Write cache flushed */
  93. X    /* brain damaged NFS does not know what Internet is */
  94. X    NFSERR_NOENT,    /* WF_REP_WAIT: Operation would block */
  95. X    NFSERR_NOENT,    /* WF_ERR_ALREADY: Operation already in progress */
  96. X    NFSERR_NOENT,    /* WF_ERR_PROTO: Protocol not available */
  97. X    NFSERR_NOENT,    /* WF_ERR_NDOWN: Network is down */
  98. X    NFSERR_NOENT,    /* WF_ERR_NUNREACH: Network is unreachable */
  99. X    NFSERR_NOENT,    /* WF_ERR_XABORT: Transfer aborted */
  100. X    NFSERR_NOENT,    /* WF_ERR_TIMEOUT: Connection timed out */
  101. X    NFSERR_NOENT,    /* WF_ERR_REFUSED: Connection refused */
  102. X    NFSERR_NOENT,    /* WF_ERR_HDOWN: Host is down */
  103. X    NFSERR_NOENT,    /* WF_ERR_HUNREACH: No route to host */
  104. X    NFSERR_NOENT,    /* WF_ERR_NQUOT: Network quota exceeded */
  105. X};
  106. X
  107. Xvoid
  108. Xnfs_getattr_reply(c, status)
  109. Xwf_thrd *c;
  110. Xint status;
  111. X{
  112. X    static attrstat res;
  113. X    if (status == WF_REP_OK) {
  114. X        bcopy(&c->filep->fattr, &res.attrstat_u.attributes,
  115. X              sizeof(fattr));
  116. X    } else {
  117. X        bzero(&res, sizeof (res));
  118. X    }
  119. X    res.status = nfserr[status];
  120. X    svc_sendreply(c->rqstp->rq_xprt, xdr_attrstat, &res);
  121. X    if (! (c->flag & WF_THREAD_BUSY)) thrd_free(c);
  122. X}
  123. X
  124. Xvoid
  125. Xnfs_lookup_reply(c, status)
  126. Xwf_thrd    *c;
  127. Xint status;
  128. X{
  129. X    static diropres res;
  130. X    if (status == WF_REP_OK) {
  131. X        bcopy(c->resfhp, &res.diropres_u.diropres.file,
  132. X              sizeof (nfs_fh));
  133. X        bcopy(&c->filep->fattr, &res.diropres_u.diropres.attributes,
  134. X              sizeof(fattr));
  135. X    } else {
  136. X        bzero(&res, sizeof (res));
  137. X    }
  138. X    res.status = nfserr[status];
  139. X    svc_sendreply(c->rqstp->rq_xprt, xdr_diropres, &res);
  140. X    if (! (c->flag & WF_THREAD_BUSY)) thrd_free(c);
  141. X}
  142. X
  143. Xvoid
  144. Xnfs_readlink_reply(c, status)
  145. Xwf_thrd *c;
  146. Xint status;
  147. X{
  148. X    static readlinkres res;
  149. X    char path[NFS_MAXPATHLEN];
  150. X    if (status == WF_REP_OK) {
  151. X        res.readlinkres_u.data = path;
  152. X        strcpy(res.readlinkres_u.data, c->filep->link);
  153. X    } else {
  154. X        bzero(&res, sizeof (res));
  155. X    }
  156. X    res.status = nfserr[status];
  157. X    svc_sendreply(c->rqstp->rq_xprt, xdr_readlinkres, &res);
  158. X    if (! (c->flag & WF_THREAD_BUSY)) thrd_free(c);
  159. X}
  160. X
  161. Xvoid
  162. Xnfs_read_reply(c, status, attrp, data_len, data_val)
  163. Xwf_thrd *c;
  164. Xnfsstat status;
  165. Xfattr *attrp;
  166. Xint data_len;
  167. Xchar *data_val;
  168. X{
  169. X    static readres res;
  170. X    if (attrp && data_val) {
  171. X        bcopy(attrp, &res.readres_u.reply.attributes, sizeof(fattr));
  172. X        res.readres_u.reply.data.data_len = data_len;
  173. X        res.readres_u.reply.data.data_val = data_val;
  174. X    } else {
  175. X        bzero(&res, sizeof (res));
  176. X    }
  177. X    res.status = nfserr[status];
  178. X    svc_sendreply(c->rqstp->rq_xprt, xdr_readres, &res);
  179. X    if (! (c->flag & WF_THREAD_BUSY)) thrd_free(c);
  180. X}
  181. X
  182. Xstatic void
  183. Xnfs_readdir_reply(c, status, resp)
  184. Xwf_thrd *c;
  185. Xnfsstat status;
  186. Xreaddirres *resp;
  187. X{
  188. X    static readdirres res;
  189. X
  190. X    if (resp) {
  191. X        resp->status = status;
  192. X        svc_sendreply(c->rqstp->rq_xprt, xdr_readdirres, resp);
  193. X    } else {
  194. X        bzero(&res, sizeof(res));
  195. X        res.status = status;
  196. X        svc_sendreply(c->rqstp->rq_xprt, xdr_readdirres, &res);
  197. X    }
  198. X    if (! (c->flag & WF_THREAD_BUSY)) thrd_free(c);
  199. X}
  200. X
  201. X
  202. Xvoid
  203. Xnfs_read_done(c, status)
  204. X/* rqstp, volp, offset, count, totalcount, dirp, filep */
  205. Xwf_thrd *c;
  206. Xint status;
  207. X{
  208. X    int fd, buflen;
  209. X    char *buf;
  210. X    char path[MAXPATHLEN];
  211. X
  212. X    if (status != WF_REP_OK) {
  213. X        nfs_read_reply(c, status, 0, 0, 0);
  214. X        return;
  215. X    }
  216. X    file_getpath(path, c->child_volp, c->dirp, c->filep);
  217. X    fd = open(path, O_RDONLY);
  218. X    if (fd < 0) {
  219. X        dlog("no such file: %s", path);
  220. X        nfs_read_reply(c, WF_ERR_NOENT, 0, 0, 0);
  221. X        return;
  222. X    }
  223. X    lseek(fd, (off_t )c->offset, 0);
  224. X    buflen = c->count;
  225. X    buf = so_getbuf(fd);
  226. X    buflen = read(fd, buf, buflen);
  227. X    close(fd);
  228. X    if (buflen < 0) {
  229. X        dlog("cmfs_read: read error");
  230. X        nfs_read_reply(c, WF_ERR_IO, 0, 0, 0);
  231. X        return;
  232. X    }
  233. X    c->child_volp->stats.bytes_to_client += buflen;
  234. X    nfs_read_reply(c, WF_REP_OK, &c->filep->fattr, buflen, buf);
  235. X}
  236. X
  237. X#ifdef DEBUG_CHAIN
  238. Xstatic void
  239. Xcheck_chain(c, filep, ident)
  240. Xwf_thrd *c;
  241. Xwf_file *filep;
  242. Xchar *ident;
  243. X{
  244. X    wf_file *d;
  245. X    int found = 0;
  246. X
  247. X    if (filep == c->dirp->file)
  248. X        return;
  249. X    ITER(d, wf_file, &c->dirp->file->q) {
  250. X        if (d == filep) {
  251. X            found = 1;
  252. X            break;
  253. X        }
  254. X    }
  255. X    if (! found) {
  256. X        dlog("%s: filep = %08x not in chain", ident, filep);
  257. X        csd_abort(1);
  258. X    }
  259. X}
  260. X#endif
  261. X
  262. X/*
  263. X * You cannot eat these cookies.
  264. X */
  265. Xstatic unsigned int    gen = 1;    /* generation number */
  266. Xstatic unsigned int    ch;        /* cookie handle */
  267. X#define    CH_SIZE    256
  268. X
  269. X/* Cookie internals */
  270. Xunion cookie {
  271. X    struct {
  272. X        unsigned int    gen: 24;
  273. X        unsigned int    ch: 8;
  274. X    } broken;
  275. X    unsigned long whole;
  276. X};
  277. X
  278. X/* Ring buffer of cookie checker/mapper. Indexed by cookie handle */
  279. Xstatic struct cookie_checker {
  280. X    wf_file    *filep;
  281. X    wf_file    *head;
  282. X} cooche[CH_SIZE];
  283. X
  284. Xunsigned long
  285. Xcookie_bake(filep, head)
  286. Xwf_file *filep, *head;
  287. X{
  288. X    union cookie u;
  289. X
  290. X    assert(sizeof(union cookie) == sizeof(nfscookie));
  291. X    if (++ch == CH_SIZE) {
  292. X        ch = 0;
  293. X        ++gen;
  294. X        if (gen == 0)
  295. X            gen = 1;    /* so that valid cookie != 0 holds */
  296. X    }
  297. X    cooche[ch].filep = filep;
  298. X    cooche[ch].head = head;
  299. X    u.broken.gen = gen;
  300. X    u.broken.ch = ch;
  301. X    return (u.whole);
  302. X}
  303. X
  304. Xwf_file *
  305. Xcookie_taste(cookie, head)
  306. Xunsigned long cookie;
  307. Xwf_file *head;
  308. X{
  309. X    unsigned int i;
  310. X    union cookie u;
  311. X
  312. X    u.whole = cookie;
  313. X    i = u.broken.ch;
  314. X    if (u.broken.gen == gen || (u.broken.gen == gen-1 && i > ch)) {
  315. X        if (cooche[i].head == head)
  316. X            return (cooche[i].filep);
  317. X    }
  318. X    return (wf_file *)0;
  319. X}
  320. X
  321. Xvoid
  322. Xnfs_readdir_done(c, status)
  323. Xwf_thrd *c;    /* rqstp, volp, cookie, count, dirp */
  324. Xint status;
  325. X{
  326. X    static readdirres res;
  327. X    wf_file *filep, *nextp;
  328. X    entry **e, *p, *p2;
  329. X    unsigned long cool;
  330. X    int size = 0;
  331. X
  332. X    if (status != WF_REP_OK) {
  333. X        nfs_readdir_reply(c, nfserr[status], 0);
  334. X        return;
  335. X    }
  336. X    e = &res.readdirres_u.reply.entries;
  337. X    bcopy(c->cookie, &cool, sizeof (nfscookie));
  338. X    if (! cool) {
  339. X        filep = FIRST(wf_file, &c->dirp->file->q);
  340. X    } else {
  341. X        filep = cookie_taste(cool, c->dirp->file);
  342. X        if (! filep) {
  343. X            struct in_addr in;
  344. X            in.s_addr = c->client;
  345. X            dlog("invalid cookie from client %s",
  346. X                 inet_ntoa(in));
  347. X            nfs_readdir_reply(c, NFSERR_NOENT, 0);
  348. X            return;
  349. X        }
  350. X#ifdef DEBUG_CHAIN
  351. X        check_chain(c, filep, "get cookie");
  352. X#endif
  353. X    }
  354. X    for (; nextp = NEXT(wf_file, filep),
  355. X         filep != HEAD(wf_file, &c->dirp->file->q);
  356. X         filep = nextp) {
  357. X        size += sizeof(entry) + strlen(filep->name) + 16;
  358. X        if (size >= c->count)
  359. X            break;
  360. X        *e = ALLOC(entry);
  361. X        (*e)->fileid = filep->id;
  362. X        (*e)->name = filep->name;
  363. X        cool = cookie_bake(nextp, c->dirp->file);
  364. X        bcopy(&cool, (*e)->cookie, sizeof(nfscookie));
  365. X#ifdef DEBUG_CHAIN
  366. X        check_chain(c, nextp, "set cookie");
  367. X#endif
  368. X        e = &((*e)->nextentry);
  369. X    }
  370. X    *e = (entry *)0;
  371. X    res.readdirres_u.reply.eof =
  372. X        (filep == HEAD(wf_file, &c->dirp->file->q));
  373. X    c->child_volp->stats.bytes_to_client += MIN(size, c->count);
  374. X    nfs_readdir_reply(c, NFS_OK, &res);
  375. X
  376. X    p = res.readdirres_u.reply.entries;
  377. X    while (p) {
  378. X        p2 = p->nextentry;
  379. X        FREE(p);
  380. X        p = p2;
  381. X    }
  382. X}
  383. END_OF_FILE
  384.   if test 9289 -ne `wc -c <'csd/nfs_reply.c'`; then
  385.     echo shar: \"'csd/nfs_reply.c'\" unpacked with wrong size!
  386.   fi
  387.   # end of 'csd/nfs_reply.c'
  388. fi
  389. if test -f 'doc/manual.ps.B' -a "${1}" != "-c" ; then 
  390.   echo shar: Will not clobber existing file \"'doc/manual.ps.B'\"
  391. else
  392.   echo shar: Extracting \"'doc/manual.ps.B'\" \(45673 characters\)
  393.   sed "s/^X//" >'doc/manual.ps.B' <<'END_OF_FILE'
  394. X14 r (the)s
  395. X15 r (Internet)s
  396. X15 r (\256le)s
  397. X14 r (cache.)s
  398. Xf1 SF
  399. X141 1517 p (\017)s
  400. Xf17 SF
  401. X31 r (config/)s
  402. Xf6 SF
  403. X202 1592 p (Machine-,)s
  404. X15 r (architecture-)s
  405. X16 r (and)s
  406. X15 r (operating-system)s
  407. X15 r (dependent)s
  408. X15 r (\256les.)s
  409. Xf1 SF
  410. X141 1714 p (\017)s
  411. Xf17 SF
  412. X31 r (csd/)s
  413. Xf6 SF
  414. X202 1789 p (An)s
  415. X23 r (NFS)s
  416. X22 r (server)s
  417. X-1 r (,)s
  418. X23 r (an)s
  419. X23 r (NFS-FTP)s
  420. X22 r (gateway)s
  421. X23 r (software,)s
  422. X24 r (the)s
  423. X22 r (Internet)s
  424. X23 r (\256le)s
  425. X22 r (cache,)s
  426. X25 r (or)s
  427. X22 r (the)s
  428. X23 r (substrate)s
  429. X22 r (for)s
  430. X202 1864 p (scalable)s
  431. X22 r (information)s
  432. X22 r (systems,)s
  433. X24 r (that)s
  434. X22 r (runs)s
  435. X22 r (as)s
  436. X22 r (a)s
  437. X22 r (daemon)s
  438. X22 r (in)s
  439. X23 r (the)s
  440. X22 r (user)s
  441. X22 r (mode.)s
  442. X41 r (Modi\256cation)s
  443. X22 r (to)s
  444. X22 r (the)s
  445. X202 1940 p (UNIX)s
  446. X13 r (kernel)s
  447. X13 r (is)s
  448. X13 r (not)s
  449. X13 r (necessary)s
  450. X13 r (at)s
  451. X13 r (all.)s
  452. X19 r (It)s
  453. X13 r (can)s
  454. X13 r (be)s
  455. X13 r (accessed)s
  456. X13 r (as)s
  457. X13 r (an)s
  458. X13 r (ordinary)s
  459. X13 r (NFS)s
  460. X13 r (server)s
  461. X13 r (from)s
  462. X13 r (virtually)s
  463. X202 2015 p (any)s
  464. X20 r (client)s
  465. X20 r (workstations)s
  466. X20 r (with)s
  467. X20 r (NFS)s
  468. X20 r (capability)s
  469. X-3 r (.)s
  470. X34 r (It)s
  471. X20 r (talks)s
  472. X19 r (with)s
  473. X20 r (anonymous)s
  474. X20 r (ftp)s
  475. X20 r (servers)s
  476. X20 r (using)s
  477. X20 r (FTP)s
  478. X202 2090 p (protocol)s
  479. X15 r (\(see)s
  480. X16 r (Figure)s
  481. X15 r (1.1\).)s
  482. Xf1 SF
  483. X141 2212 p (\017)s
  484. Xf17 SF
  485. X31 r (doc/)s
  486. Xf6 SF
  487. X202 2287 p (Documentation,)s
  488. X20 r (both)s
  489. X18 r (\256nished)s
  490. X19 r (and)s
  491. X18 r (un\256nished,)s
  492. X20 r (including)s
  493. X18 r (memorandum)s
  494. X19 r (and)s
  495. X18 r (preliminary)s
  496. X19 r (ideas.)s
  497. X202 2362 p (Some)s
  498. X15 r (may)s
  499. X16 r (be)s
  500. X15 r (only)s
  501. X15 r (useful)s
  502. X15 r (to)s
  503. X16 r (interested)s
  504. X15 r (developers.)s
  505. Xf1 SF
  506. X141 2484 p (\017)s
  507. Xf17 SF
  508. X31 r (gtr/)s
  509. Xf6 SF
  510. X202 2559 p (A)s
  511. X15 r (package)s
  512. X16 r (to)s
  513. X15 r (rearrange)s
  514. X15 r (servers)s
  515. X15 r (by)s
  516. X16 r (geographical)s
  517. X15 r (/)s
  518. X15 r (topological)s
  519. X15 r (region.)s
  520. Xf1 SF
  521. X141 2681 p (\017)s
  522. Xf17 SF
  523. X31 r (include/)s
  524. Xf6 SF
  525. X202 2756 p (Header)s
  526. X15 r (\256les)s
  527. X16 r (for)s
  528. X15 r (C)s
  529. X15 r (programs.)s
  530. Xf1 SF
  531. X141 2878 p (\017)s
  532. Xf17 SF
  533. X31 r (libww/)s
  534. Xf6 SF
  535. X202 2953 p (Application)s
  536. X15 r (programming)s
  537. X16 r (interface,)s
  538. X15 r (for)s
  539. X15 r (bypassing)s
  540. X15 r (NFS)s
  541. X16 r (when)s
  542. X15 r (necessary)s
  543. X-3 r (.)s
  544. Xf1 SF
  545. X141 3075 p (\017)s
  546. Xf17 SF
  547. X31 r (mosaic/)s
  548. Xf6 SF
  549. X202 3150 p (Patches)s
  550. X16 r (to)s
  551. X15 r (add)s
  552. X16 r (direct)s
  553. X15 r (WWFS)s
  554. X16 r (support)s
  555. X15 r (to)s
  556. X16 r (NCSA)s
  557. Xf20 SF
  558. X15 r (Mosaic)s
  559. Xf6 SF
  560. X16 r (for)s
  561. X15 r (X,)s
  562. X16 r (the)s
  563. X15 r (multi-protocol)s
  564. X16 r (information)s
  565. X202 3225 p (browser)s
  566. X-2 r (.)s
  567. X19 r (Also)s
  568. X15 r (included)s
  569. X15 r (here)s
  570. X16 r (are)s
  571. X15 r (migration)s
  572. X15 r (tools)s
  573. X15 r (from)s
  574. X15 r (Internet)s
  575. X15 r (Gopher)s
  576. X15 r (Protocol)s
  577. X16 r (and)s
  578. X15 r (HyperT)s
  579. X-4 r (ext)s
  580. X202 3300 p (T)s
  581. X-1 r (ransfer)s
  582. X14 r (Protocol.)s
  583. Xf1 SF
  584. X141 3422 p (\017)s
  585. Xf17 SF
  586. X31 r (mule/)s
  587. Xf6 SF
  588. X202 3497 p (Emacs)s
  589. X15 r (lisp)s
  590. X16 r (package)s
  591. X15 r (to)s
  592. X15 r (access)s
  593. X15 r (WWFS)s
  594. X16 r (within)s
  595. X15 r (multi-lingual)s
  596. X15 r (EMACS.)s
  597. Xf1 SF
  598. X141 3619 p (\017)s
  599. Xf17 SF
  600. X31 r (rpc/)s
  601. Xf6 SF
  602. X202 3694 p (Subroutines)s
  603. X15 r (for)s
  604. X16 r (remote)s
  605. X15 r (procedure)s
  606. X15 r (call.)s
  607. XEP
  608. X
  609. X%%Page: 5 6
  610. XBP
  611. Xf8 SF
  612. X50 66 p (1.2.)s
  613. X35 r (ORGANIZA)s
  614. X-2 r (TION)s
  615. X14 r (OF)s
  616. X16 r (THIS)s
  617. X15 r (DISTRIBUTION)s
  618. Xf6 SF
  619. X1124 r (5)s
  620. Xf1 SF
  621. X141 232 p (\017)s
  622. Xf17 SF
  623. X31 r (saps/)s
  624. Xf6 SF
  625. X202 307 p (SAPS)s
  626. X17 r (stands)s
  627. X17 r (for)s
  628. X16 r (Server)s
  629. X17 r (Administration)s
  630. X17 r (Perl)s
  631. X16 r (Scripts;)s
  632. X18 r (some)s
  633. X17 r (of)s
  634. X16 r (which)s
  635. X17 r (has)s
  636. X17 r (been)s
  637. X17 r (used)s
  638. X16 r (for)s
  639. X17 r (day-to-)s
  640. X202 382 p (day)s
  641. X15 r (server)s
  642. X16 r (administration.)s
  643. Xf1 SF
  644. X141 507 p (\017)s
  645. Xf17 SF
  646. X31 r (vol/)s
  647. Xf6 SF
  648. X202 583 p (V)s
  649. X-7 r (olume)s
  650. X15 r (\256les,)s
  651. X15 r (that)s
  652. X15 r (describe)s
  653. X15 r (server-to-location)s
  654. X14 r (mappings)s
  655. X15 r (and)s
  656. X16 r (alternative)s
  657. X15 r (servers.)s
  658. Xf1 SF
  659. X141 708 p (\017)s
  660. Xf17 SF
  661. X31 r (wwalk/)s
  662. Xf6 SF
  663. X202 783 p (Point-and-click)s
  664. X16 r (style)s
  665. X16 r (graphical)s
  666. X16 r (user)s
  667. X15 r (interface,)s
  668. X16 r (which)s
  669. X16 r (is)s
  670. X16 r (actually)s
  671. X15 r (a)s
  672. X16 r (rework)s
  673. X16 r (of)s
  674. X16 r (my)s
  675. X16 r (good-old-days)s
  676. X202 858 p (Tk)s
  677. X19 r (script.)s
  678. X30 r (Y)s
  679. X-5 r (ou)s
  680. X18 r (need)s
  681. X18 r (Tk2.3,)s
  682. X20 r (T)s
  683. X-4 r (clX6.4c,)s
  684. X19 r (and)s
  685. X18 r (tclRawTCP-1.0)s
  686. X19 r (to)s
  687. X18 r (run)s
  688. X19 r (this)s
  689. X18 r (script.)s
  690. Xf7 SF
  691. X31 r (It')s
  692. X-7 r (s)s
  693. X17 r (not)s
  694. X19 r (updated)s
  695. X202 934 p (in)s
  696. X18 r (this)s
  697. X19 r (r)s
  698. X-2 r (elease.)s
  699. Xf6 SF
  700. X29 r (If)s
  701. X18 r (you)s
  702. X18 r (don't)s
  703. X18 r (know)s
  704. X18 r (what)s
  705. X18 r (T)s
  706. X-3 r (cl)s
  707. X17 r (and)s
  708. X18 r (Tk)s
  709. X19 r (is,)s
  710. X19 r (just)s
  711. X18 r (get)s
  712. X18 r (the)s
  713. Xf17 SF
  714. X18 r (comp.lang.tcl)s
  715. Xf6 SF
  716. X19 r (F)s
  717. X-4 r (AQ)s
  718. X17 r (from)s
  719. X202 1009 p (USENET)s
  720. X15 r (newsgroups)s
  721. X16 r (\(or)s
  722. X15 r (just)s
  723. X15 r (go)s
  724. X15 r (to)s
  725. Xf17 SF
  726. X16 r (/news.answers/tcl-faq)s
  727. Xf6 SF
  728. X15 r (on)s
  729. X15 r (WWFS\).)s
  730. Xf1 SF
  731. X141 1134 p (\017)s
  732. Xf17 SF
  733. X31 r (wwmount/)s
  734. Xf6 SF
  735. X202 1209 p (A)s
  736. X15 r (modi\256ed)s
  737. X16 r (version)s
  738. X15 r (of)s
  739. Xf17 SF
  740. X15 r (mount)s
  741. Xf6 SF
  742. X15 r (and)s
  743. Xf17 SF
  744. X16 r (umount)s
  745. Xf6 SF
  746. X15 r (command,)s
  747. X15 r (based)s
  748. X15 r (on)s
  749. X15 r (BSD)s
  750. X16 r (Net2.)s
  751. X485 1417 p 1.000 @beginspecial
  752. X@epsf
  753. X0.600000 @vscale
  754. X0.600000 @hscale
  755. X-1.000000 0.000000 473.000000 379.000000 @bbox
  756. X@setspecial
  757. X%%BeginDocument: architecture.eps
  758. X%!PS-Adobe-2.0 EPSF-2.0
  759. X%%Title: /tmp/xfig-fig004519
  760. X%%Creator: fig2dev
  761. X%%CreationDate: Thu Aug 12 03:46:28 1993
  762. X%%For: youki-k@dec413 (Youki Kadobayashi)
  763. X%%BoundingBox: -1 0 473 379
  764. X%%Pages: 0
  765. X%%EndComments
  766. X/$F2psDict 200 dict def 
  767. X$F2psDict begin
  768. X$F2psDict /mtrx matrix put
  769. X/l {lineto} bind def
  770. X/m {moveto} bind def
  771. X/s {stroke} bind def
  772. X/n {newpath} bind def
  773. X/gs {gsave} bind def
  774. X/gr {grestore} bind def
  775. X/clp {closepath} bind def
  776. X/graycol {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul
  777. X4 -2 roll mul setrgbcolor} bind def
  778. X/col-1 {} def
  779. X/col0 {0 0 0 setrgbcolor} bind def
  780. X/col1 {0 0 1 setrgbcolor} bind def
  781. X/col2 {0 1 0 setrgbcolor} bind def
  782. X/col3 {0 1 1 setrgbcolor} bind def
  783. X/col4 {1 0 0 setrgbcolor} bind def
  784. X/col5 {1 0 1 setrgbcolor} bind def
  785. X/col6 {1 1 0 setrgbcolor} bind def
  786. X/col7 {1 1 1 setrgbcolor} bind def
  787. X /DrawEllipse {
  788. X    /endangle exch def
  789. X    /startangle exch def
  790. X    /yrad exch def
  791. X    /xrad exch def
  792. X    /y exch def
  793. X    /x exch def
  794. X    /savematrix mtrx currentmatrix def
  795. X    x y translate xrad yrad scale 0 0 1 startangle endangle arc
  796. X    savematrix setmatrix
  797. X    } def
  798. X
  799. X    end
  800. X/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def
  801. X/$F2psEnd {$F2psEnteredState restore end} def
  802. X%%EndProlog
  803. X
  804. X$F2psBegin
  805. X0 setlinecap 0 setlinejoin
  806. X-112.0 468.0 translate 0.900 -0.900 scale
  807. X0.500 setlinewidth
  808. X% Ellipse
  809. Xn 549 174 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  810. Xgs col0 s gr
  811. X% Ellipse
  812. Xn 319 244 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  813. Xgs col0 s gr
  814. X% Ellipse
  815. Xn 499 219 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  816. Xgs col0 s gr
  817. X% Ellipse
  818. Xn 584 234 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  819. Xgs col0 s gr
  820. X% Ellipse
  821. Xn 529 284 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  822. Xgs col0 s gr
  823. X% Ellipse
  824. Xn 524 389 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  825. Xgs col0 s gr
  826. X% Ellipse
  827. Xn 579 349 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  828. Xgs col0 s gr
  829. X    [4.000000] 0 setdash
  830. X% Polyline
  831. Xn 339 99 m 339 519 l gs col-1 s gr
  832. X    [] 0 setdash
  833. X% Polyline
  834. Xn 514 219 m 514 199 l  484 199 l  484 219 l  clp gs 1.00 setgray fill gr
  835. Xgs col0 s gr
  836. X% Polyline
  837. Xn 334 244 m 334 224 l  304 224 l  304 244 l  clp gs 1.00 setgray fill gr
  838. Xgs col0 s gr
  839. X% Polyline
  840. Xn 594 349 m 594 329 l  564 329 l  564 349 l  clp gs 1.00 setgray fill gr
  841. Xgs col0 s gr
  842. X% Polyline
  843. Xn 544 284 m 544 264 l  514 264 l  514 284 l  clp gs 1.00 setgray fill gr
  844. Xgs col0 s gr
  845. X% Polyline
  846. Xn 599 234 m 599 214 l  569 214 l  569 234 l  clp gs 1.00 setgray fill gr
  847. Xgs col0 s gr
  848. X0.000 setlinewidth
  849. X    [2.000000] 0 setdash
  850. X% Polyline
  851. Xn 359 329 m 359 304 l  319 304 l  319 329 l  clp gs 1.00 setgray fill gr
  852. X    [] 0 setdash
  853. X0.500 setlinewidth
  854. X% Polyline
  855. Xn 539 389 m 539 369 l  509 369 l  509 389 l  clp gs 1.00 setgray fill gr
  856. Xgs col0 s gr
  857. X% Polyline
  858. Xn 564 174 m 564 154 l  534 154 l  534 174 l  clp gs 1.00 setgray fill gr
  859. Xgs col0 s gr
  860. X% Ellipse
  861. Xn 579 329 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  862. Xgs col0 s gr
  863. X% Polyline
  864. Xn 509 389 m 539 389 l gs col7 s gr
  865. X% Ellipse
  866. Xn 499 199 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  867. Xgs col0 s gr
  868. X% Polyline
  869. Xn 484 219 m 514 219 l gs col7 s gr
  870. X% Ellipse
  871. Xn 584 214 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  872. Xgs col0 s gr
  873. X% Polyline
  874. Xn 304 244 m 334 244 l gs col7 s gr
  875. X% Polyline
  876. Xn 569 234 m 599 234 l gs col7 s gr
  877. X% Polyline
  878. Xn 514 284 m 544 284 l gs col7 s gr
  879. X% Ellipse
  880. Xn 549 154 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  881. Xgs col0 s gr
  882. X% Ellipse
  883. Xn 529 264 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  884. Xgs col0 s gr
  885. X% Ellipse
  886. Xn 524 369 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  887. Xgs col0 s gr
  888. X% Polyline
  889. Xn 534 174 m 564 174 l gs col7 s gr
  890. X% Polyline
  891. Xn 195 340 m 195 319 l  168 319 l  168 340 l  clp gs col-1 s gr
  892. X% Polyline
  893. Xn 168 342 m 164 349 l  190 349 l  195 342 l  168 342 l gs col-1 s gr
  894. X% Polyline
  895. Xn 195 319 m 199 321 l  199 336 l  195 340 l gs col-1 s gr
  896. X% Polyline
  897. Xn 195 342 m 195 347 l  190 351 l  164 351 l  164 349 l gs col-1 s gr
  898. X% Polyline
  899. Xn 564 349 m 594 349 l gs col7 s gr
  900. X% Polyline
  901. Xn 178 321 m 171 321 171 331 7 arcto 4 {pop} repeat 171 338 185 338 7 arcto 4 {pop} repeat 192 338 192 328 7 arcto 4 {pop} repeat 192 321 178 321 7 arcto 4 {pop} repeat clp gs col-1 s gr
  902. X% Polyline
  903. Xn 220 305 m 220 284 l  193 284 l  193 305 l  clp gs col-1 s gr
  904. X% Polyline
  905. Xn 193 307 m 189 314 l  215 314 l  220 307 l  193 307 l gs col-1 s gr
  906. X% Polyline
  907. Xn 190 349 m 190 351 l gs col-1 s gr
  908. X% Polyline
  909. Xn 220 307 m 220 312 l  215 316 l  189 316 l  189 314 l gs col-1 s gr
  910. X% Polyline
  911. Xn 215 314 m 215 316 l gs col-1 s gr
  912. X% Polyline
  913. Xn 203 286 m 196 286 196 296 7 arcto 4 {pop} repeat 196 303 210 303 7 arcto 4 {pop} repeat 217 303 217 293 7 arcto 4 {pop} repeat 217 286 203 286 7 arcto 4 {pop} repeat clp gs col-1 s gr
  914. X% Polyline
  915. Xn 165 268 m 165 247 l  138 247 l  138 268 l  clp gs col-1 s gr
  916. X% Polyline
  917. Xn 138 270 m 134 277 l  160 277 l  165 270 l  138 270 l gs col-1 s gr
  918. X% Polyline
  919. Xn 165 247 m 169 249 l  169 264 l  165 268 l gs col-1 s gr
  920. X% Polyline
  921. Xn 165 270 m 165 275 l  160 279 l  134 279 l  134 277 l gs col-1 s gr
  922. X% Polyline
  923. Xn 160 277 m 160 279 l gs col-1 s gr
  924. X% Polyline
  925. Xn 148 249 m 141 249 141 259 7 arcto 4 {pop} repeat 141 266 155 266 7 arcto 4 {pop} repeat 162 266 162 256 7 arcto 4 {pop} repeat 162 249 148 249 7 arcto 4 {pop} repeat clp gs col-1 s gr
  926. X% Polyline
  927. Xn 205 238 m 205 217 l  178 217 l  178 238 l  clp gs col-1 s gr
  928. X% Polyline
  929. Xn 178 240 m 174 247 l  200 247 l  205 240 l  178 240 l gs col-1 s gr
  930. X% Polyline
  931. Xn 205 217 m 209 219 l  209 234 l  205 238 l gs col-1 s gr
  932. X% Polyline
  933. Xn 205 240 m 205 245 l  200 249 l  174 249 l  174 247 l gs col-1 s gr
  934. X% Polyline
  935. Xn 200 247 m 200 249 l gs col-1 s gr
  936. X% Polyline
  937. Xn 188 219 m 181 219 181 229 7 arcto 4 {pop} repeat 181 236 195 236 7 arcto 4 {pop} repeat 202 236 202 226 7 arcto 4 {pop} repeat 202 219 188 219 7 arcto 4 {pop} repeat clp gs col-1 s gr
  938. X    [4.000000] 0 setdash
  939. X% Ellipse
  940. Xn 534 266 115 162 0 360 DrawEllipse gs col-1 s gr
  941. X    [] 0 setdash
  942. X    [4.000000] 0 setdash
  943. X% Ellipse
  944. Xn 189 286 65 72 0 360 DrawEllipse gs col-1 s gr
  945. X    [] 0 setdash
  946. X% Ellipse
  947. Xn 338 280 25 25 0 360 DrawEllipse gs 1.00 setgray fill gr
  948. Xgs col-1 s gr
  949. X% Polyline
  950. Xn 369 264 m 469 214 l gs col0 s gr
  951. Xn 460.950 215.789 m 469.000 214.000 l 462.739 219.367 l gs 2 setlinejoin col0 s gr
  952. X% Polyline
  953. Xn 374 289 m 554 334 l gs col0 s gr
  954. Xn 546.724 330.119 m 554.000 334.000 l 545.754 334.000 l gs 2 setlinejoin col0 s gr
  955. X% Polyline
  956. Xn 369 304 m 499 374 l gs col0 s gr
  957. Xn 492.904 368.446 m 499.000 374.000 l 491.008 371.968 l gs 2 setlinejoin col0 s gr
  958. X% Polyline
  959. Xn 319 254 m 324 259 l gs col0 s gr
  960. X% Polyline
  961. Xn 209 229 m 304 269 l gs col0 s gr
  962. Xn 297.403 264.052 m 304.000 269.000 l 295.851 267.739 l gs 2 setlinejoin col0 s gr
  963. X% Polyline
  964. Xn 199 329 m 304 299 l gs col0 s gr
  965. Xn 295.758 299.275 m 304.000 299.000 l 296.857 303.121 l gs 2 setlinejoin col0 s gr
  966. X% Polyline
  967. Xn 169 259 m 299 279 l gs col0 s gr
  968. Xn 291.397 275.807 m 299.000 279.000 l 290.789 279.760 l gs 2 setlinejoin col0 s gr
  969. X% Polyline
  970. Xn 224 294 m 299 289 l gs col0 s gr
  971. Xn 290.885 287.537 m 299.000 289.000 l 291.151 291.528 l gs 2 setlinejoin col0 s gr
  972. X% Polyline
  973. Xn 319 504 m 219 504 l gs col-1 s gr
  974. Xn 227.000 506.000 m 219.000 504.000 l 227.000 502.000 l gs 2 setlinejoin col-1 s gr
  975. X% Polyline
  976. Xn 359 504 m 479 504 l gs col-1 s gr
  977. Xn 471.000 502.000 m 479.000 504.000 l 471.000 506.000 l gs 2 setlinejoin col-1 s gr
  978. X% Ellipse
  979. Xn 319 224 15 10 0 360 DrawEllipse gs 1.00 setgray fill gr
  980. Xgs col0 s gr
  981. X% Polyline
  982. Xn 220 284 m 224 286 l  224 301 l  220 305 l gs col-1 s gr
  983. X/Helvetica-Bold findfont 16.00 scalefont setfont
  984. X509 449 m 
  985. Xgs 1 -1 scale (Internet) col-1 show gr
  986. X/Helvetica-Bold findfont 16.00 scalefont setfont
  987. X324 324 m 
  988. Xgs 1 -1 scale (csd) col-1 show gr
  989. X/Helvetica-Bold findfont 16.00 scalefont setfont
  990. X174 379 m 
  991. Xgs 1 -1 scale (LAN) col-1 show gr
  992. X/Helvetica-Bold findfont 16.00 scalefont setfont
  993. X234 499 m 
  994. Xgs 1 -1 scale (DFS view) col-1 show gr
  995. X/Helvetica-Bold findfont 16.00 scalefont setfont
  996. X374 499 m 
  997. Xgs 1 -1 scale (Internet view) col-1 show gr
  998. X$F2psEnd
  999. X%%EndDocument
  1000. X@endspecial
  1001. X50 2877 p (Figure)s
  1002. X19 r (1.2:)s
  1003. X28 r (WWFS:)s
  1004. X19 r (shared)s
  1005. X19 r (namespace,)s
  1006. X20 r (replicated)s
  1007. X19 r (services,)s
  1008. X20 r (binding)s
  1009. X19 r (mechanism,)s
  1010. X20 r (and)s
  1011. X19 r (right)s
  1012. X19 r (protocol)s
  1013. X50 2953 p (for)s
  1014. X15 r (the)s
  1015. X15 r (right)s
  1016. X16 r (place.)s
  1017. XEP
  1018. X
  1019. X%%Page: 6 7
  1020. XBP
  1021. Xf6 SF
  1022. X50 66 p (6)s
  1023. Xf8 SF
  1024. X1572 r (CHAPTER)s
  1025. X15 r (1.)s
  1026. X36 r (INTRODUCTION)s
  1027. XEP
  1028. X
  1029. X%%Page: 7 8
  1030. XBP
  1031. Xf19 SF
  1032. X50 652 p (Chapter)s
  1033. X29 r (2)s
  1034. Xf18 SF
  1035. X50 934 p (Installation)s
  1036. Xf6 SF
  1037. X50 1236 p (This)s
  1038. X12 r (chapter)s
  1039. X13 r (describes)s
  1040. X12 r (installation)s
  1041. X13 r (procedure)s
  1042. X12 r (of)s
  1043. X13 r (this)s
  1044. X12 r (software)s
  1045. X13 r (suite.)s
  1046. X19 r (Before)s
  1047. X13 r (beginning)s
  1048. X12 r (installation,)s
  1049. X13 r (you)s
  1050. X50 1311 p (must)s
  1051. X15 r (make)s
  1052. X15 r (sure)s
  1053. X16 r (that)s
  1054. X15 r (you)s
  1055. X15 r (have)s
  1056. X15 r (necessary)s
  1057. X16 r (tools)s
  1058. X15 r (handy)s
  1059. X-3 r (,)s
  1060. X14 r (then)s
  1061. X15 r (decide)s
  1062. X15 r (where)s
  1063. X16 r (you)s
  1064. X15 r (install)s
  1065. X15 r (this)s
  1066. X15 r (software.)s
  1067. Xf13 SF
  1068. X50 1536 p (2.1)s
  1069. X80 r (Bootstrapping)s
  1070. X20 r (envir)s
  1071. X-1 r (onments)s
  1072. Xf6 SF
  1073. X50 1685 p (The)s
  1074. X15 r (following)s
  1075. X15 r (tools)s
  1076. X16 r (are)s
  1077. X15 r (necessary)s
  1078. X15 r (to)s
  1079. X15 r (generate)s
  1080. X16 r (executables)s
  1081. X15 r (and)s
  1082. X15 r (to)s
  1083. X15 r (perform)s
  1084. X15 r (administrative)s
  1085. X16 r (tasks:)s
  1086. X144 1754 p 967 2 ru
  1087. X143 1829 p 2 75 ru
  1088. X177 1807 p (name)s
  1089. X341 1829 p 2 75 ru
  1090. X376 1807 p (requirements)s
  1091. X1110 1829 p 2 75 ru
  1092. X144 1832 p 967 2 ru
  1093. X143 1907 p 2 75 ru
  1094. X177 1884 p (make)s
  1095. X341 1907 p 2 75 ru
  1096. X376 1884 p (bundled)s
  1097. Xf17 SF
  1098. X15 r (make)s
  1099. Xf6 SF
  1100. X(,)s
  1101. X15 r (or)s
  1102. X15 r (GNU)s
  1103. Xf17 SF
  1104. X15 r (make)s
  1105. Xf6 SF
  1106. X(.)s
  1107. X1110 1907 p 2 75 ru
  1108. X143 1982 p 2 75 ru
  1109. X177 1960 p (cc)s
  1110. X341 1982 p 2 75 ru
  1111. X376 1960 p (bundled)s
  1112. Xf17 SF
  1113. X15 r (cc)s
  1114. Xf6 SF
  1115. X(,)s
  1116. X15 r (or)s
  1117. X15 r (GNU)s
  1118. Xf17 SF
  1119. X15 r (cc)s
  1120. Xf6 SF
  1121. X(.)s
  1122. X1110 1982 p 2 75 ru
  1123. X143 2057 p 2 75 ru
  1124. X177 2035 p (perl)s
  1125. X341 2057 p 2 75 ru
  1126. X376 2035 p (version)s
  1127. X15 r (4.0)s
  1128. X15 r (or)s
  1129. X15 r (later)s
  1130. X-2 r (.)s
  1131. X1110 2057 p 2 75 ru
  1132. X144 2060 p 967 2 ru
  1133. X144 2155 p (Basically)s
  1134. X15 r (any)s
  1135. X16 r (brain-damaged)s
  1136. Xf17 SF
  1137. X15 r (make)s
  1138. Xf6 SF
  1139. X15 r (should)s
  1140. X15 r (work.)s
  1141. X20 r (If)s
  1142. X16 r (it)s
  1143. X15 r (doesn't)s
  1144. X14 r (work,)s
  1145. X15 r (please)s
  1146. X15 r (let)s
  1147. X16 r (me)s
  1148. X15 r (know)s
  1149. X-3 r (.)s
  1150. X144 2235 p (If)s
  1151. X15 r (you)s
  1152. X15 r (are)s
  1153. X14 r (planning)s
  1154. X15 r (to)s
  1155. X15 r (make)s
  1156. Xf20 SF
  1157. X14 r (Mosaic/WWFS)s
  1158. Xf6 SF
  1159. X(,)s
  1160. X15 r (you)s
  1161. X15 r (will)s
  1162. X15 r (need)s
  1163. X14 r (Motif/X1)s
  1164. X-1 r (1)s
  1165. X14 r (libraries.)s
  1166. X20 r (Y)s
  1167. X-5 r (ou)s
  1168. X14 r (can)s
  1169. X14 r (grab)s
  1170. X50 2310 p (binaries)s
  1171. X14 r (from)s
  1172. Xf17 SF
  1173. X15 r (WWFS/binaries)s
  1174. Xf6 SF
  1175. X14 r (on)s
  1176. X15 r (WWFS)s
  1177. X14 r (and)s
  1178. X15 r (original)s
  1179. X14 r (Mosaic)s
  1180. X15 r (source)s
  1181. X14 r (from)s
  1182. Xf17 SF
  1183. X15 r (NCSA/Web/Mosaic-source)s
  1184. Xf6 SF
  1185. X50 2386 p (on)s
  1186. X15 r (WWFS.)s
  1187. X144 2466 p (If)s
  1188. X19 r (you)s
  1189. X19 r (are)s
  1190. X19 r (planning)s
  1191. X19 r (to)s
  1192. X20 r (hack)s
  1193. Xf17 SF
  1194. X19 r (wwalk)s
  1195. Xf6 SF
  1196. X(,)s
  1197. X20 r (a)s
  1198. X19 r (point-and-click)s
  1199. X19 r (style)s
  1200. X19 r (directory)s
  1201. X19 r (browser)s
  1202. X19 r (for)s
  1203. X19 r (the)s
  1204. X19 r (X)s
  1205. X19 r (W)s
  1206. X-1 r (indow)s
  1207. X50 2541 p (System,)s
  1208. X18 r (you)s
  1209. X18 r (need)s
  1210. X17 r (T)s
  1211. X-3 r (cl)s
  1212. X17 r (and)s
  1213. X17 r (Tk.)s
  1214. X28 r (Note)s
  1215. X17 r (that)s
  1216. X18 r (this)s
  1217. X17 r (stuff)s
  1218. X17 r (is)s
  1219. X17 r (no)s
  1220. X18 r (longer)s
  1221. X18 r (maintained)s
  1222. X17 r (up)s
  1223. X18 r (to)s
  1224. X17 r (date.)s
  1225. X28 r (Bunch)s
  1226. X17 r (of)s
  1227. X18 r (T)s
  1228. X-3 r (cl)s
  1229. X50 2617 p (stuff)s
  1230. X14 r (is)s
  1231. X15 r (available)s
  1232. X16 r (from)s
  1233. Xf17 SF
  1234. X15 r (tcl-tk)s
  1235. Xf6 SF
  1236. X15 r (on)s
  1237. X15 r (WWFS.)s
  1238. X144 2697 p (If)s
  1239. X17 r (you)s
  1240. X17 r (are)s
  1241. X18 r (willing)s
  1242. X17 r (to)s
  1243. X17 r (adapt,)s
  1244. X18 r (improve)s
  1245. X17 r (or)s
  1246. X17 r (port)s
  1247. X17 r (this)s
  1248. X18 r (software)s
  1249. X17 r (by)s
  1250. X17 r (yourself,)s
  1251. X18 r (I)s
  1252. X17 r (strongly)s
  1253. X17 r (recommend)s
  1254. X17 r (the)s
  1255. X50 2772 p (use)s
  1256. X16 r (of)s
  1257. X16 r (GNU)s
  1258. X16 r (software)s
  1259. X17 r (suite)s
  1260. X16 r (to)s
  1261. X16 r (facilitate)s
  1262. X16 r (development.)s
  1263. X23 r (If)s
  1264. X16 r (you)s
  1265. X17 r (are)s
  1266. X16 r (planning)s
  1267. X16 r (to)s
  1268. X16 r (modify)s
  1269. X16 r (the)s
  1270. X16 r (source)s
  1271. X16 r (code,)s
  1272. X50 2848 p (I)s
  1273. X15 r (recommend)s
  1274. X15 r (the)s
  1275. X16 r (use)s
  1276. X15 r (of)s
  1277. X15 r (additional)s
  1278. X15 r (tools)s
  1279. X16 r (which)s
  1280. X15 r (I)s
  1281. X15 r (have)s
  1282. X15 r (been)s
  1283. X15 r (using)s
  1284. X16 r (for)s
  1285. X15 r (day-to-day)s
  1286. X15 r (programming)s
  1287. X15 r (tasks:)s
  1288. X144 2917 p 1031 2 ru
  1289. X143 2992 p 2 75 ru
  1290. X177 2970 p (name)s
  1291. X455 2992 p 2 75 ru
  1292. X489 2970 p (description)s
  1293. X1174 2992 p 2 75 ru
  1294. X144 2995 p 1031 2 ru
  1295. X143 3070 p 2 75 ru
  1296. X177 3047 p (cextract)s
  1297. X455 3070 p 2 75 ru
  1298. X489 3047 p (C)s
  1299. X15 r (prototype)s
  1300. X15 r (extractor)s
  1301. X1174 3070 p 2 75 ru
  1302. X143 3145 p 2 75 ru
  1303. X177 3123 p (gdb)s
  1304. X455 3145 p 2 75 ru
  1305. X489 3123 p (GNU)s
  1306. X15 r (debugger)s
  1307. X1174 3145 p 2 75 ru
  1308. X143 3220 p 2 75 ru
  1309. X177 3198 p (lsof)s
  1310. X455 3220 p 2 75 ru
  1311. X489 3198 p (process)s
  1312. X15 r (\256le-table)s
  1313. X15 r (inspector)s
  1314. X1174 3220 p 2 75 ru
  1315. X143 3296 p 2 75 ru
  1316. X177 3273 p (malloclib)s
  1317. X455 3296 p 2 75 ru
  1318. X489 3273 p (malloc)s
  1319. X15 r (debugging)s
  1320. X15 r (library)s
  1321. X1174 3296 p 2 75 ru
  1322. X143 3371 p 2 75 ru
  1323. X177 3348 p (mkid)s
  1324. X455 3371 p 2 75 ru
  1325. X489 3348 p (source)s
  1326. X15 r (code)s
  1327. X15 r (indexing)s
  1328. X15 r (tool)s
  1329. X1174 3371 p 2 75 ru
  1330. X143 3446 p 2 75 ru
  1331. X177 3424 p (rpcsrc-4.0)s
  1332. X455 3446 p 2 75 ru
  1333. X489 3424 p (Sun)s
  1334. X15 r (RPC)s
  1335. X15 r (source)s
  1336. X1174 3446 p 2 75 ru
  1337. X144 3448 p 1031 2 ru
  1338. X144 3544 p (Other)s
  1339. X18 r (brand-new)s
  1340. X19 r (tools)s
  1341. X18 r (or)s
  1342. X19 r (commercial)s
  1343. X18 r (programming)s
  1344. X19 r (environments)s
  1345. X18 r (might)s
  1346. X18 r (be)s
  1347. X19 r (of)s
  1348. X18 r (great)s
  1349. X19 r (help.)s
  1350. X29 r (I)s
  1351. X19 r (am)s
  1352. X50 3619 p (very)s
  1353. X20 r (much)s
  1354. X20 r (interested)s
  1355. X20 r (to)s
  1356. X20 r (share)s
  1357. X19 r (any)s
  1358. X20 r (programming)s
  1359. X20 r (tips)s
  1360. X20 r (with)s
  1361. X20 r (other)s
  1362. X20 r (developers)s
  1363. X20 r (\(preferably)s
  1364. X20 r (via)s
  1365. X20 r (mailing)s
  1366. X50 3694 p (list\).)s
  1367. X1260 3846 p (7)s
  1368. XEP
  1369. X
  1370. X%%Page: 8 9
  1371. XBP
  1372. Xf6 SF
  1373. X50 66 p (8)s
  1374. Xf8 SF
  1375. X1603 r (CHAPTER)s
  1376. X15 r (2.)s
  1377. X35 r (INST)s
  1378. X-2 r (ALLA)s
  1379. X-3 r (TION)s
  1380. Xf13 SF
  1381. X50 232 p (2.2)s
  1382. X80 r (Planning)s
  1383. X20 r (server)s
  1384. X20 r (installation)s
  1385. Xf6 SF
  1386. X50 383 p (Now)s
  1387. X19 r (you)s
  1388. X19 r (must)s
  1389. X19 r (determine)s
  1390. X19 r (where)s
  1391. X19 r (to)s
  1392. X19 r (put)s
  1393. X19 r (related)s
  1394. X19 r (material.)s
  1395. X32 r (Y)s
  1396. X-5 r (ou)s
  1397. X18 r (need)s
  1398. X19 r (suf\256cient)s
  1399. X18 r (amount)s
  1400. X19 r (of)s
  1401. X19 r (storage)s
  1402. X19 r (be-)s
  1403. X50 458 p (cause)s
  1404. X17 r (our)s
  1405. X16 r (daemon)s
  1406. X17 r (cache)s
  1407. X16 r (accessed)s
  1408. X17 r (\256les.)s
  1409. X24 r (Necessary)s
  1410. X17 r (storage)s
  1411. X17 r (space)s
  1412. X16 r (varies)s
  1413. X17 r (depending)s
  1414. X17 r (on)s
  1415. X16 r (the)s
  1416. X17 r (number)s
  1417. X16 r (of)s
  1418. X50 534 p (users,)s
  1419. X15 r (user)s
  1420. X15 r (activity)s
  1421. X-3 r (,)s
  1422. X13 r (and)s
  1423. X15 r (granularity)s
  1424. X15 r (of)s
  1425. X14 r (cached)s
  1426. X15 r (\256les,)s
  1427. X15 r (but)s
  1428. X15 r (you)s
  1429. X14 r (can)s
  1430. X15 r (start)s
  1431. X15 r (with)s
  1432. X14 r (relatively)s
  1433. X15 r (small)s
  1434. X15 r (space)s
  1435. X15 r (\(e.g.,)s
  1436. X50 609 p (40Mbytes\))s
  1437. X18 r (and)s
  1438. X19 r (change)s
  1439. X18 r (the)s
  1440. X18 r (partition)s
  1441. X19 r (later)s
  1442. X-2 r (,)s
  1443. X19 r (when)s
  1444. X18 r (demands)s
  1445. X18 r (exceed)s
  1446. X19 r (supply)s
  1447. X-3 r (.)s
  1448. X28 r (Other)s
  1449. X19 r (extras,)s
  1450. X19 r (such)s
  1451. X18 r (as)s
  1452. X19 r (logs)s
  1453. X50 684 p (and)s
  1454. X15 r (maintenance)s
  1455. X15 r (scripts,)s
  1456. X16 r (do)s
  1457. X15 r (not)s
  1458. X15 r (occupy)s
  1459. X15 r (much)s
  1460. X16 r (space)s
  1461. X15 r (as)s
  1462. X15 r (compared)s
  1463. X15 r (with)s
  1464. X15 r (cache)s
  1465. X16 r (directories.)s
  1466. X144 766 p (If)s
  1467. X17 r (you)s
  1468. X18 r (have)s
  1469. X17 r (a)s
  1470. X17 r (relatively)s
  1471. X18 r (large)s
  1472. X16 r (empty)s
  1473. X17 r (partition)s
  1474. X18 r (available)s
  1475. X17 r (and)s
  1476. X17 r (you)s
  1477. X18 r (are)s
  1478. X17 r (planning)s
  1479. X17 r (to)s
  1480. X18 r (use)s
  1481. X17 r (WWFS)s
  1482. X17 r (reg-)s
  1483. X50 842 p (ularly)s
  1484. X-3 r (,)s
  1485. X20 r (it)s
  1486. X20 r (would)s
  1487. X19 r (be)s
  1488. X20 r (better)s
  1489. X20 r (to)s
  1490. X19 r (allocate)s
  1491. X20 r (the)s
  1492. X20 r (entire)s
  1493. X19 r (partition)s
  1494. X20 r (to)s
  1495. X20 r (WWFS,)s
  1496. X19 r (since)s
  1497. X20 r (cache)s
  1498. X20 r (occasionally)s
  1499. X19 r (grows)s
  1500. X50 917 p (quickly)s
  1501. X14 r (when)s
  1502. X13 r (users)s
  1503. X14 r (access)s
  1504. X13 r (WWFS)s
  1505. X14 r (in)s
  1506. X13 r (a)s
  1507. X14 r (sudden)s
  1508. X13 r (burst)s
  1509. Xf4 SF
  1510. X1305 895 p (1)s
  1511. Xf6 SF
  1512. X1330 917 p (.)s
  1513. X19 r (If)s
  1514. X14 r (you)s
  1515. X14 r (are)s
  1516. X13 r (planning)s
  1517. X14 r (to)s
  1518. X13 r (adopt)s
  1519. X14 r (this)s
  1520. X13 r (option,)s
  1521. X14 r (simply)s
  1522. Xf17 SF
  1523. X50 992 p (newfs)s
  1524. Xf6 SF
  1525. X14 r (it,)s
  1526. X14 r (create)s
  1527. X14 r (mountpoint)s
  1528. X14 r (and)s
  1529. Xf17 SF
  1530. X14 r (mount)s
  1531. Xf6 SF
  1532. X14 r (it)s
  1533. X14 r (as)s
  1534. X13 r (usual.)s
  1535. X20 r (No)s
  1536. X14 r (special)s
  1537. X14 r (operation)s
  1538. X14 r (is)s
  1539. X14 r (necessary)s
  1540. X14 r (since)s
  1541. X14 r (the)s
  1542. X13 r (caching)s
  1543. X50 1067 p (mechanism)s
  1544. X15 r (is)s
  1545. X15 r (built)s
  1546. X16 r (on)s
  1547. X15 r (top)s
  1548. X15 r (of)s
  1549. X15 r (UNIX)s
  1550. X16 r (\256le)s
  1551. X15 r (system.)s
  1552. X144 1149 p (WWFS)s
  1553. X11 r (requires)s
  1554. X11 r (a)s
  1555. X11 r (directory)s
  1556. X11 r (tree)s
  1557. X10 r (to)s
  1558. X11 r (store)s
  1559. X11 r (various)s
  1560. X11 r (information.)s
  1561. X19 r (Name)s
  1562. X11 r (the)s
  1563. X11 r (top)s
  1564. X11 r (directory)s
  1565. X10 r (appropriately)s
  1566. X50 1225 p (\(e.g.,)s
  1567. Xf17 SF
  1568. X20 r (/var/wwfs)s
  1569. Xf6 SF
  1570. X(\))s
  1571. X19 r (and)s
  1572. X19 r (make)s
  1573. X19 r (sure)s
  1574. X19 r (it)s
  1575. X19 r (is)s
  1576. X19 r (writable)s
  1577. X19 r (by)s
  1578. X19 r (root.)s
  1579. X31 r (It)s
  1580. X19 r (can)s
  1581. X19 r (reside)s
  1582. X19 r (either)s
  1583. X19 r (on)s
  1584. X19 r (a)s
  1585. X19 r (local)s
  1586. X19 r (disk)s
  1587. X19 r (or)s
  1588. X19 r (on)s
  1589. X19 r (an)s
  1590. X50 1300 p (NFS-mounted)s
  1591. X15 r (disk,)s
  1592. X15 r (but)s
  1593. X16 r (I)s
  1594. X15 r (recommend)s
  1595. X15 r (the)s
  1596. X15 r (use)s
  1597. X16 r (of)s
  1598. X15 r (local)s
  1599. X15 r (disk)s
  1600. X15 r (for)s
  1601. X15 r (better)s
  1602. X16 r (reliability)s
  1603. X15 r (and)s
  1604. X15 r (performance.)s
  1605. Xf13 SF
  1606. X50 1535 p (2.3)s
  1607. X80 r (Installing)s
  1608. X20 r (the)s
  1609. X20 r (Cluster)s
  1610. X19 r (Server)s
  1611. Xf6 SF
  1612. X50 1686 p (The)s
  1613. Xf17 SF
  1614. X15 r (csd)s
  1615. Xf6 SF
  1616. X15 r (included)s
  1617. X16 r (in)s
  1618. X15 r (this)s
  1619. X15 r (release)s
  1620. X15 r (is)s
  1621. X16 r (known)s
  1622. X15 r (to)s
  1623. X15 r (work)s
  1624. X15 r (on)s
  1625. X15 r (the)s
  1626. X16 r (following)s
  1627. X15 r (platforms:)s
  1628. X144 1761 p 1012 2 ru
  1629. X143 1836 p 2 75 ru
  1630. X177 1814 p (hardware)s
  1631. X626 1836 p 2 75 ru
  1632. X660 1814 p (operating)s
  1633. X15 r (system)s
  1634. X1155 1836 p 2 75 ru
  1635. X144 1838 p 1012 2 ru
  1636. X143 1914 p 2 75 ru
  1637. X177 1891 p (Sun)s
  1638. X16 r ([34])s
  1639. X626 1914 p 2 75 ru
  1640. X660 1891 p (Sun)s
  1641. X15 r (OS)s
  1642. X15 r (4.1.[123])s
  1643. X1155 1914 p 2 75 ru
  1644. X143 1989 p 2 75 ru
  1645. X177 1966 p (DECstation)s
  1646. X626 1989 p 2 75 ru
  1647. X660 1966 p (Ultrix)s
  1648. X15 r (4.3)s
  1649. X1155 1989 p 2 75 ru
  1650. X143 2064 p 2 75 ru
  1651. X177 2042 p (Gateway)s
  1652. X16 r (2000)s
  1653. X626 2064 p 2 75 ru
  1654. X660 2042 p (BSD/386)s
  1655. X1155 2064 p 2 75 ru
  1656. X143 2139 p 2 75 ru
  1657. X177 2117 p (OMRON)s
  1658. X16 r (Luna)s
  1659. X15 r (2)s
  1660. X626 2139 p 2 75 ru
  1661. X660 2117 p (BSD)s
  1662. X15 r (/)s
  1663. X15 r (Mach)s
  1664. X16 r (2.5)s
  1665. X1155 2139 p 2 75 ru
  1666. X143 2215 p 2 75 ru
  1667. X177 2192 p (SUMI)s
  1668. X16 r (ST)s
  1669. X-4 r (A)s
  1670. X-7 r (TION)s
  1671. X626 2215 p 2 75 ru
  1672. X660 2192 p (RISC/os)s
  1673. X15 r (4.x)s
  1674. X1155 2215 p 2 75 ru
  1675. X143 2290 p 2 75 ru
  1676. X177 2267 p (Sony)s
  1677. X16 r (NEWS)s
  1678. X626 2290 p 2 75 ru
  1679. X660 2267 p (NEWS-OS)s
  1680. X15 r (4.[012])s
  1681. X1155 2290 p 2 75 ru
  1682. X144 2292 p 1012 2 ru
  1683. X144 2392 p (Basically)s
  1684. X15 r (any)s
  1685. X16 r (4.3BSD,)s
  1686. X15 r (4.4BSD)s
  1687. X15 r (or)s
  1688. X15 r (OSF/1)s
  1689. X15 r (machines)s
  1690. X16 r (is)s
  1691. X15 r (OK)s
  1692. X15 r (\(well,)s
  1693. X15 r (supposed)s
  1694. X16 r (to)s
  1695. X15 r (be\).)s
  1696. X144 2474 p (This)s
  1697. X22 r (software)s
  1698. X23 r (is)s
  1699. X22 r (not)s
  1700. X22 r (tested)s
  1701. X22 r (on)s
  1702. X23 r (other)s
  1703. X22 r (platforms.)s
  1704. X41 r (Port)s
  1705. X22 r (to)s
  1706. X23 r (other)s
  1707. X22 r (platforms)s
  1708. X22 r (will)s
  1709. X22 r (be)s
  1710. X23 r (easy)s
  1711. X22 r (however)s
  1712. X-1 r (,)s
  1713. X50 2550 p (if)s
  1714. X20 r (the)s
  1715. X19 r (target)s
  1716. X19 r (platform)s
  1717. X20 r (implements)s
  1718. X19 r (Sun)s
  1719. X20 r (NFS,)s
  1720. X19 r (the)s
  1721. X20 r (Berkeley)s
  1722. X20 r (family)s
  1723. X19 r (of)s
  1724. X20 r (\256lesystems)s
  1725. X20 r (\(FFS)s
  1726. X19 r (or)s
  1727. X20 r (FFFS\))s
  1728. X20 r (and)s
  1729. X50 2625 p (4.[34]BSD)s
  1730. X11 r (system)s
  1731. X11 r (calls.)s
  1732. X19 r (I)s
  1733. X11 r (haven')s
  1734. X-1 r (t)s
  1735. X10 r (made)s
  1736. X11 r (further)s
  1737. X11 r (attempt)s
  1738. X11 r (to)s
  1739. X11 r (port)s
  1740. X11 r (this)s
  1741. X11 r (software)s
  1742. X11 r (to)s
  1743. X11 r (more)s
  1744. X11 r (esotelic)s
  1745. X11 r (platforms)s
  1746. X50 2700 p (\(largely)s
  1747. X12 r (due)s
  1748. X14 r (to)s
  1749. X14 r (lack)s
  1750. X13 r (of)s
  1751. X14 r (motivation)s
  1752. X13 r (for)s
  1753. X14 r (it)s
  1754. X13 r (and)s
  1755. X14 r (familiarity)s
  1756. X14 r (with)s
  1757. X13 r (unseen)s
  1758. X14 r (beasts\),)s
  1759. X14 r (but)s
  1760. X13 r (I)s
  1761. X14 r (hope)s
  1762. X13 r (we)s
  1763. X14 r (can)s
  1764. X13 r (support)s
  1765. X50 2775 p (many)s
  1766. X15 r (more)s
  1767. X15 r (platforms)s
  1768. X16 r (without)s
  1769. X15 r (pain.)s
  1770. Xf11 SF
  1771. X50 2982 p (2.3.1)s
  1772. X66 r (Edit)s
  1773. Xf12 SF
  1774. X17 r (csd.conf)s
  1775. Xf11 SF
  1776. X17 r (and)s
  1777. Xf12 SF
  1778. X16 r (Makefile.config)s
  1779. Xf6 SF
  1780. X50 3111 p (If)s
  1781. X14 r (you)s
  1782. X13 r (are)s
  1783. X14 r (using)s
  1784. X13 r (one)s
  1785. X14 r (of)s
  1786. X13 r (these)s
  1787. X14 r (supported)s
  1788. X13 r (platforms,)s
  1789. X14 r (skip)s
  1790. X14 r (to)s
  1791. X13 r (the)s
  1792. X14 r (next)s
  1793. X13 r (paragraph.)s
  1794. X20 r (If)s
  1795. X13 r (you)s
  1796. X14 r (are)s
  1797. X13 r (not,)s
  1798. X14 r (then)s
  1799. X14 r (read)s
  1800. X50 3186 p (comments)s
  1801. X13 r (in)s
  1802. X14 r (the)s
  1803. Xf17 SF
  1804. X13 r (config/Makefile.config)s
  1805. Xf6 SF
  1806. X13 r (and)s
  1807. X14 r (edit)s
  1808. X13 r (\257ags)s
  1809. X13 r (accordingly)s
  1810. X-3 r (.)s
  1811. X19 r (There)s
  1812. X13 r (are)s
  1813. X13 r (lots)s
  1814. X14 r (of)s
  1815. X13 r (con\256guration)s
  1816. X50 3262 p (\256les)s
  1817. X16 r (in)s
  1818. X16 r (the)s
  1819. Xf17 SF
  1820. X15 r (config/)s
  1821. Xf6 SF
  1822. X16 r (directory)s
  1823. X-3 r (,)s
  1824. X15 r (which)s
  1825. X16 r (has)s
  1826. X16 r (been)s
  1827. X15 r (mostly)s
  1828. X16 r (stolen)s
  1829. X16 r (from)s
  1830. X16 r (the)s
  1831. Xf17 SF
  1832. X15 r (amd)s
  1833. Xf6 SF
  1834. X(,)s
  1835. X16 r (the)s
  1836. X16 r (4.4)s
  1837. X16 r (BSD)s
  1838. X15 r (automounter)s
  1839. X-2 r (.)s
  1840. X50 3337 p (If)s
  1841. X12 r (your)s
  1842. X12 r (platform)s
  1843. X12 r (has)s
  1844. X12 r (been)s
  1845. X12 r (supported)s
  1846. X12 r (by)s
  1847. X12 r (the)s
  1848. Xf17 SF
  1849. X12 r (amd)s
  1850. Xf6 SF
  1851. X(,)s
  1852. X13 r (you)s
  1853. X12 r (can)s
  1854. X12 r (avoid)s
  1855. X12 r (re-inventing)s
  1856. X12 r (the)s
  1857. X12 r (wheel)s
  1858. X12 r (by)s
  1859. X12 r (starting)s
  1860. X12 r (there.)s
  1861. X144 3419 p (Next,)s
  1862. X22 r (modify)s
  1863. Xf17 SF
  1864. X20 r (config/csd.conf)s
  1865. Xf6 SF
  1866. X20 r (to)s
  1867. X20 r (re\257ect)s
  1868. X20 r (your)s
  1869. X21 r (decision)s
  1870. X20 r (in)s
  1871. X20 r (Section)s
  1872. X20 r (2.2.)s
  1873. X36 r (Let)s
  1874. X20 r (us)s
  1875. X20 r (call)s
  1876. X20 r (it)s
  1877. Xf17 SF
  1878. X21 r (WWFSDIR)s
  1879. Xf6 SF
  1880. X(.)s
  1881. Xf17 SF
  1882. X50 3494 p (csd.conf)s
  1883. Xf6 SF
  1884. X15 r (is)s
  1885. X15 r (referenced)s
  1886. X16 r (by)s
  1887. X15 r (various)s
  1888. X15 r (utilities)s
  1889. X15 r (including)s
  1890. X16 r (make,)s
  1891. X15 r (shell)s
  1892. X15 r (scripts,)s
  1893. X15 r (perl)s
  1894. X15 r (scripts)s
  1895. X16 r (and)s
  1896. X15 r (tcl)s
  1897. X15 r (scripts.)s
  1898. X50 3575 p 980 2 ru
  1899. Xf3 SF
  1900. X120 3612 p (1)s
  1901. Xf5 SF
  1902. X140 3633 p (Also,)s
  1903. X14 r (WWFS)s
  1904. X13 r (has)s
  1905. X14 r (had)s
  1906. X14 r (a)s
  1907. X13 r (strange)s
  1908. X14 r (bug)s
  1909. X14 r (which)s
  1910. X13 r (\256lled)s
  1911. X14 r (up)s
  1912. X14 r (entire)s
  1913. X13 r (partition,)s
  1914. X14 r (although)s
  1915. X14 r (it)s
  1916. X14 r (was)s
  1917. X13 r (known)s
  1918. X14 r (to)s
  1919. X14 r (be)s
  1920. X13 r (harmless)s
  1921. X14 r (and)s
  1922. X14 r (is)s
  1923. X13 r (now)s
  1924. X50 3694 p (exterminated.)s
  1925. XEP
  1926. X
  1927. X%%Page: 9 10
  1928. XBP
  1929. Xf8 SF
  1930. X50 66 p (2.3.)s
  1931. X35 r (INST)s
  1932. X-2 r (ALLING)s
  1933. X14 r (THE)s
  1934. X16 r (CLUSTER)s
  1935. X15 r (SERVER)s
  1936. Xf6 SF
  1937. X1249 r (9)s
  1938. Xf11 SF
  1939. X50 232 p (2.3.2)s
  1940. X66 r (Just)s
  1941. X17 r (type)s
  1942. Xf12 SF
  1943. X17 r (make)s
  1944. Xf6 SF
  1945. X50 348 p (At)s
  1946. X14 r (the)s
  1947. X14 r (top)s
  1948. X14 r (directory)s
  1949. X14 r (of)s
  1950. X14 r (the)s
  1951. X14 r (distribution,)s
  1952. X15 r (just)s
  1953. X14 r (type)s
  1954. Xf17 SF
  1955. X14 r (make)s
  1956. Xf6 SF
  1957. X(.)s
  1958. X19 r (It)s
  1959. X15 r (automagically)s
  1960. X14 r (guesses)s
  1961. X14 r (your)s
  1962. X14 r (architecture)s
  1963. X14 r (and)s
  1964. X50 423 p (operating)s
  1965. X15 r (system.)s
  1966. Xf17 SF
  1967. X144 498 p (make)s
  1968. Xf6 SF
  1969. X11 r (will)s
  1970. X11 r (start)s
  1971. X11 r (compilation,)s
  1972. X11 r (and)s
  1973. X11 r (eventually)s
  1974. X11 r (generate)s
  1975. X11 r (the)s
  1976. X11 r (server)s
  1977. X11 r (program)s
  1978. X11 r (\()s
  1979. Xf17 SF
  1980. X(csd)s
  1981. Xf6 SF
  1982. X(\))s
  1983. X10 r (and)s
  1984. X11 r (client)s
  1985. X11 r (commands)s
  1986. X50 574 p (\()s
  1987. Xf17 SF
  1988. X(wwmount)s
  1989. Xf6 SF
  1990. X18 r (and)s
  1991. Xf17 SF
  1992. X18 r (wwumount)s
  1993. Xf6 SF
  1994. X(\),)s
  1995. X18 r (among)s
  1996. X18 r (other)s
  1997. X18 r (things.)s
  1998. X28 r (Y)s
  1999. X-5 r (ou)s
  2000. X17 r (can)s
  2001. X18 r (ignore)s
  2002. X18 r (a)s
  2003. X18 r (lot)s
  2004. X18 r (of)s
  2005. X18 r (warnings)s
  2006. X18 r (during)s
  2007. X18 r (compilation)s
  2008. X50 649 p (procedure,)s
  2009. X15 r (especially)s
  2010. X15 r (if)s
  2011. X16 r (your)s
  2012. X15 r (compiler)s
  2013. X15 r (conform)s
  2014. X15 r (to)s
  2015. X16 r (the)s
  2016. X15 r (ANSI)s
  2017. X15 r (standard.)s
  2018. X144 724 p (NOTE:)s
  2019. X17 r (It')s
  2020. X-2 r (s)s
  2021. X16 r (not)s
  2022. X17 r (desirable)s
  2023. X16 r (to)s
  2024. X17 r (hand-edit)s
  2025. X17 r (C)s
  2026. X17 r (\256les)s
  2027. X17 r (generated)s
  2028. X17 r (by)s
  2029. Xf17 SF
  2030. X17 r (rpcgen)s
  2031. Xf6 SF
  2032. X(.)s
  2033. X25 r (If)s
  2034. X17 r (you)s
  2035. X17 r (have)s
  2036. X17 r (encountered)s
  2037. X17 r (any)s
  2038. X50 800 p (dif\256culty)s
  2039. X15 r (with)s
  2040. X15 r (compiling)s
  2041. Xf17 SF
  2042. X16 r (*_prot_*.c)s
  2043. Xf6 SF
  2044. X16 r (\256les,)s
  2045. X16 r (you)s
  2046. X15 r (must)s
  2047. X16 r (regenerate)s
  2048. X16 r (these)s
  2049. X16 r (\256les)s
  2050. X15 r (using)s
  2051. Xf17 SF
  2052. X16 r (rpcgen)s
  2053. Xf6 SF
  2054. X(.)s
  2055. X22 r (T)s
  2056. X-3 r (o)s
  2057. X14 r (do)s
  2058. X16 r (this,)s
  2059. X50 875 p (step)s
  2060. X15 r (down)s
  2061. X15 r (to)s
  2062. Xf17 SF
  2063. X16 r (rpc/)s
  2064. Xf6 SF
  2065. X15 r (then)s
  2066. X15 r (just)s
  2067. X15 r (type)s
  2068. Xf17 SF
  2069. X16 r (make)s
  2070. Xf6 SF
  2071. X(.)s
  2072. Xf11 SF
  2073. X50 1039 p (2.3.3)s
  2074. X66 r (Edit)s
  2075. Xf12 SF
  2076. X17 r (/etc/passwd)s
  2077. Xf6 SF
  2078. X50 1156 p (If)s
  2079. X17 r (this)s
  2080. X16 r (is)s
  2081. X17 r (the)s
  2082. X16 r (\256rst)s
  2083. X17 r (time)s
  2084. X16 r (for)s
  2085. X17 r (your)s
  2086. X16 r (server)s
  2087. X17 r (installation,)s
  2088. X17 r (you)s
  2089. X16 r (must)s
  2090. X17 r (create)s
  2091. X16 r (a)s
  2092. X17 r (local)s
  2093. X16 r (account)s
  2094. X17 r (with)s
  2095. X16 r (user)s
  2096. Xf20 SF
  2097. X17 r (id)s
  2098. Xf17 SF
  2099. X16 r (wwfs)s
  2100. Xf6 SF
  2101. X50 1231 p (and)s
  2102. X16 r (group)s
  2103. Xf20 SF
  2104. X16 r (id)s
  2105. Xf17 SF
  2106. X15 r (operator)s
  2107. Xf6 SF
  2108. X16 r (\(or)s
  2109. X16 r (its)s
  2110. X16 r (counterpart)s
  2111. X15 r (in)s
  2112. X16 r (your)s
  2113. X16 r (system\),)s
  2114. X16 r (at)s
  2115. X16 r (the)s
  2116. X15 r (machine)s
  2117. X16 r (designated)s
  2118. X16 r (as)s
  2119. X16 r (your)s
  2120. X15 r (cluster)s
  2121. X50 1306 p (server)s
  2122. X-1 r (,)s
  2123. X10 r (since)s
  2124. Xf17 SF
  2125. X11 r (csd)s
  2126. Xf6 SF
  2127. X11 r (operates)s
  2128. X11 r (under)s
  2129. X11 r (this)s
  2130. X11 r (account,)s
  2131. X12 r (and)s
  2132. X11 r (since)s
  2133. X11 r (all)s
  2134. X11 r (\256les)s
  2135. X11 r (and)s
  2136. X11 r (directories)s
  2137. X11 r (beneath)s
  2138. Xf17 SF
  2139. X11 r (WWFSDIR)s
  2140. Xf6 SF
  2141. X11 r (will)s
  2142. X10 r (be)s
  2143. X50 1381 p (owned)s
  2144. X14 r (by)s
  2145. X15 r (the)s
  2146. X14 r (account.)s
  2147. X21 r (Choice)s
  2148. X14 r (of)s
  2149. X15 r (user)s
  2150. Xf20 SF
  2151. X14 r (id)s
  2152. Xf6 SF
  2153. X14 r (and)s
  2154. X15 r (group)s
  2155. Xf20 SF
  2156. X14 r (id)s
  2157. Xf6 SF
  2158. X15 r (is)s
  2159. X14 r (arbitrary)s
  2160. X-2 r (,)s
  2161. X13 r (but)s
  2162. X15 r (you)s
  2163. X14 r (must)s
  2164. X15 r (choose)s
  2165. Xf20 SF
  2166. X14 r (id)s
  2167. Xf6 SF
  2168. X(s)s
  2169. X15 r (carefully)s
  2170. X50 1457 p (so)s
  2171. X16 r (that)s
  2172. X17 r (other)s
  2173. X16 r (\256lesystems)s
  2174. X17 r (can)s
  2175. X16 r (be)s
  2176. X16 r (protected)s
  2177. X17 r (from)s
  2178. X16 r (unexpected)s
  2179. X17 r (behaviour)s
  2180. X16 r (of)s
  2181. Xf17 SF
  2182. X16 r (csd)s
  2183. Xf6 SF
  2184. X17 r (\(which)s
  2185. X16 r (is)s
  2186. X16 r (very)s
  2187. X17 r (unlikely)s
  2188. X50 1532 p (though,)s
  2189. X15 r (but)s
  2190. X15 r (serious)s
  2191. X16 r (admins)s
  2192. X15 r (wants)s
  2193. X15 r (\256rewall\).)s
  2194. X20 r (An)s
  2195. X16 r (excerpt)s
  2196. X15 r (from)s
  2197. X15 r (our)s
  2198. X15 r (password)s
  2199. X15 r (database)s
  2200. X16 r (follows.)s
  2201. Xf17 SF
  2202. X50 1649 p (wwfs:*:40:5:WWFS)s
  2203. X29 r (manager:/var/wwfs:/bin/csh)s
  2204. Xf6 SF
  2205. X144 1766 p (Since)s
  2206. Xf17 SF
  2207. X13 r (csd)s
  2208. Xf6 SF
  2209. X14 r (uses)s
  2210. Xf17 SF
  2211. X13 r (wwfs@name.of.this.machine)s
  2212. Xf6 SF
  2213. X14 r (for)s
  2214. X13 r (e-mail)s
  2215. X13 r (address,)s
  2216. X14 r (this)s
  2217. X13 r (account)s
  2218. X14 r (should)s
  2219. X13 r (be)s
  2220. X13 r (reachable)s
  2221. X50 1841 p (by)s
  2222. X16 r (e-mail)s
  2223. X17 r (and)s
  2224. X16 r (every)s
  2225. X17 r (received)s
  2226. X16 r (message)s
  2227. X16 r (should)s
  2228. X17 r (be)s
  2229. X16 r (forwarded)s
  2230. X16 r (to)s
  2231. X17 r (the)s
  2232. X16 r (administrator)s
  2233. X-2 r (.)s
  2234. X23 r (The)s
  2235. X16 r (e-mail)s
  2236. X16 r (address)s
  2237. X50 1916 p (has)s
  2238. X15 r (been)s
  2239. X15 r (used)s
  2240. X16 r (for)s
  2241. X15 r (statistics)s
  2242. X15 r (reports)s
  2243. X15 r (and)s
  2244. X16 r (password)s
  2245. X15 r (\(contact)s
  2246. X15 r (address,)s
  2247. X15 r (that)s
  2248. X15 r (is\))s
  2249. X16 r (for)s
  2250. X15 r (anonymous)s
  2251. X15 r (ftp)s
  2252. X15 r (login.)s
  2253. Xf11 SF
  2254. X50 2081 p (2.3.4)s
  2255. Xf12 SF
  2256. X66 r (make)s
  2257. X40 r (install-server)s
  2258. Xf6 SF
  2259. X50 2197 p (As)s
  2260. X15 r (root,)s
  2261. X15 r (go)s
  2262. X16 r (to)s
  2263. X15 r (the)s
  2264. X15 r (top)s
  2265. X15 r (directory)s
  2266. X16 r (of)s
  2267. X15 r (the)s
  2268. X15 r (distribution,)s
  2269. X15 r (then)s
  2270. X15 r (type:)s
  2271. Xf17 SF
  2272. X50 2314 p (make)s
  2273. X29 r (install-server)s
  2274. Xf6 SF
  2275. X50 2431 p (This)s
  2276. X13 r (will)s
  2277. X14 r (install)s
  2278. X13 r (the)s
  2279. Xf17 SF
  2280. X13 r (csd)s
  2281. Xf6 SF
  2282. X14 r (and)s
  2283. X13 r (shell/perl)s
  2284. X13 r (scripts)s
  2285. X14 r (appropriately)s
  2286. X-3 r (,)s
  2287. X12 r (creating)s
  2288. X14 r (the)s
  2289. X13 r (following)s
  2290. X13 r (directories)s
  2291. X14 r (beneath)s
  2292. Xf17 SF
  2293. X50 2506 p (WWFSDIR)s
  2294. Xf6 SF
  2295. X(:)s
  2296. Xf1 SF
  2297. X141 2636 p (\017)s
  2298. Xf17 SF
  2299. X31 r (bin/)s
  2300. Xf6 SF
  2301. X15 r (\320)s
  2302. X15 r (executables)s
  2303. X16 r (are)s
  2304. X15 r (installed)s
  2305. X15 r (here.)s
  2306. Xf1 SF
  2307. X141 2758 p (\017)s
  2308. Xf17 SF
  2309. X31 r (cache/)s
  2310. Xf6 SF
  2311. X15 r (\320)s
  2312. X15 r (cached)s
  2313. X16 r (information)s
  2314. X15 r (is)s
  2315. X15 r (stored)s
  2316. X15 r (here.)s
  2317. Xf1 SF
  2318. X141 2880 p (\017)s
  2319. Xf17 SF
  2320. X31 r (etc/)s
  2321. Xf6 SF
  2322. X15 r (\320)s
  2323. X15 r (con\256guration)s
  2324. X16 r (\256les)s
  2325. X15 r (for)s
  2326. X15 r (perl)s
  2327. X15 r (scripts.)s
  2328. Xf1 SF
  2329. X141 3002 p (\017)s
  2330. Xf17 SF
  2331. X31 r (lib/)s
  2332. Xf6 SF
  2333. X15 r (\320)s
  2334. X15 r (for)s
  2335. X16 r (library)s
  2336. X15 r (\256les)s
  2337. X15 r (used)s
  2338. X15 r (by)s
  2339. X15 r (perl)s
  2340. X16 r (scripts.)s
  2341. Xf1 SF
  2342. X141 3123 p (\017)s
  2343. Xf17 SF
  2344. X31 r (log/)s
  2345. Xf6 SF
  2346. X15 r (\320)s
  2347. X15 r (logs)s
  2348. X16 r (and)s
  2349. X15 r (event)s
  2350. X15 r (traces)s
  2351. X15 r (go)s
  2352. X15 r (here.)s
  2353. Xf1 SF
  2354. X141 3245 p (\017)s
  2355. Xf17 SF
  2356. X31 r (stale/)s
  2357. Xf6 SF
  2358. X15 r (\320)s
  2359. X15 r (stale)s
  2360. X16 r (\256les)s
  2361. X15 r (and)s
  2362. X15 r (directories)s
  2363. X15 r (are)s
  2364. X15 r (moved)s
  2365. X16 r (here.)s
  2366. Xf1 SF
  2367. X141 3367 p (\017)s
  2368. Xf17 SF
  2369. X31 r (ongoing/)s
  2370. Xf6 SF
  2371. X15 r (\320)s
  2372. X15 r (all)s
  2373. X16 r (interim)s
  2374. X15 r (data,)s
  2375. X15 r (including)s
  2376. X15 r (\256les,)s
  2377. X15 r (are)s
  2378. X16 r (stored)s
  2379. X15 r (here.)s
  2380. Xf1 SF
  2381. X141 3489 p (\017)s
  2382. Xf17 SF
  2383. X31 r (vol/)s
  2384. Xf6 SF
  2385. X15 r (\320)s
  2386. X15 r (volume)s
  2387. X16 r (\256les)s
  2388. X15 r (are)s
  2389. X15 r (stored)s
  2390. X15 r (here.)s
  2391. X144 3619 p (Now)s
  2392. X18 r (you)s
  2393. X17 r (\256nished)s
  2394. X17 r (server)s
  2395. X18 r (installation)s
  2396. X17 r (procedure.)s
  2397. X27 r (Please)s
  2398. X18 r (read)s
  2399. X17 r (Sections)s
  2400. X18 r (3.1)s
  2401. X17 r (and)s
  2402. X18 r (3.4)s
  2403. X17 r (for)s
  2404. X18 r (starting)s
  2405. X17 r (up)s
  2406. X50 3694 p (the)s
  2407. X15 r (Cluster)s
  2408. X15 r (Server)s
  2409. X-2 r (.)s
  2410. XEP
  2411. X
  2412. X%%Page: 10 11
  2413. XBP
  2414. Xf6 SF
  2415. X50 66 p (10)s
  2416. Xf8 SF
  2417. X1572 r (CHAPTER)s
  2418. X15 r (2.)s
  2419. X36 r (INST)s
  2420. X-3 r (ALLA)s
  2421. X-3 r (TION)s
  2422. Xf13 SF
  2423. X50 232 p (2.4)s
  2424. X80 r (Installing)s
  2425. X20 r (mount)s
  2426. X20 r (commands)s
  2427. Xf6 SF
  2428. X50 370 p (Now)s
  2429. X23 r (you)s
  2430. X22 r (compile)s
  2431. Xf17 SF
  2432. X23 r (wwmount)s
  2433. Xf6 SF
  2434. X22 r (and)s
  2435. Xf17 SF
  2436. X23 r (wwumount)s
  2437. Xf6 SF
  2438. X23 r (for)s
  2439. X22 r (use)s
  2440. X23 r (on)s
  2441. X22 r (your)s
  2442. X23 r (workstation)s
  2443. X23 r (clusters.)s
  2444. X42 r (Or)s
  2445. X23 r (you)s
  2446. X22 r (can)s
  2447. X23 r (grab)s
  2448. X50 445 p (binaries)s
  2449. X15 r (from)s
  2450. Xf17 SF
  2451. X15 r (WWFS/binaries)s
  2452. Xf6 SF
  2453. X16 r (on)s
  2454. X15 r (WWFS.)s
  2455. X144 520 p (The)s
  2456. X18 r (mount)s
  2457. X17 r (commands)s
  2458. X18 r (is)s
  2459. X17 r (known)s
  2460. X17 r (to)s
  2461. X18 r (work)s
  2462. X17 r (on)s
  2463. X18 r (BSD/386)s
  2464. X17 r (1,)s
  2465. X18 r (SunOS)s
  2466. X18 r (4,)s
  2467. X18 r (Ultrix)s
  2468. X17 r (4,)s
  2469. X18 r (OSF/1)s
  2470. X18 r (1.3,)s
  2471. X18 r (IRIX)s
  2472. X17 r (4,)s
  2473. X50 596 p (HP-UX)s
  2474. X15 r (8,)s
  2475. X15 r (NEWS-OS)s
  2476. X15 r (4,)s
  2477. X15 r (RISC/os)s
  2478. X15 r (4,)s
  2479. X15 r (NeXT)s
  2480. X15 r (OS,)s
  2481. X15 r (and)s
  2482. X15 r (Luna)s
  2483. X15 r (family)s
  2484. X15 r (of)s
  2485. X15 r (operating)s
  2486. X15 r (systems.)s
  2487. X20 r (Bascially)s
  2488. X15 r (any)s
  2489. X50 671 p (4.3BSD,)s
  2490. X13 r (4.4BSD)s
  2491. X13 r (or)s
  2492. X14 r (OSF/1)s
  2493. X13 r (machines)s
  2494. X13 r (should)s
  2495. X13 r (be)s
  2496. X13 r (OK)s
  2497. X14 r (\(say)s
  2498. X13 r (V)s
  2499. X-7 r (AX)s
  2500. X12 r (or)s
  2501. X13 r (T)s
  2502. X-3 r (ahoe)s
  2503. X12 r (which)s
  2504. X14 r (I)s
  2505. X13 r (don't)s
  2506. X12 r (have)s
  2507. X13 r (access)s
  2508. X13 r (to\).)s
  2509. X50 746 p (Also,)s
  2510. X19 r (it)s
  2511. X17 r (is)s
  2512. X18 r (relatively)s
  2513. X18 r (easy)s
  2514. X18 r (to)s
  2515. X18 r (port)s
  2516. X18 r (the)s
  2517. X18 r (client)s
  2518. X18 r (software)s
  2519. X17 r (to)s
  2520. X18 r (non-BSD)s
  2521. X18 r (platforms.)s
  2522. X28 r (I)s
  2523. X18 r (would)s
  2524. X18 r (like)s
  2525. X18 r (to)s
  2526. X18 r (know)s
  2527. X18 r (if)s
  2528. X50 821 p (it)s
  2529. X16 r (runs)s
  2530. X16 r (on)s
  2531. X16 r (Solaris)s
  2532. X17 r (2)s
  2533. X16 r (and)s
  2534. X16 r (NEWS-OS)s
  2535. X16 r (6;)s
  2536. X17 r (please)s
  2537. X16 r (let)s
  2538. X16 r (me)s
  2539. X16 r (know)s
  2540. X16 r (if)s
  2541. X16 r (it)s
  2542. X17 r (runs)s
  2543. X16 r (on)s
  2544. X16 r (one)s
  2545. X16 r (of)s
  2546. X16 r (these)s
  2547. X16 r (\(and)s
  2548. X17 r (other)s
  2549. X16 r (exotic)s
  2550. X50 897 p (operating)s
  2551. X15 r (systems)s
  2552. X15 r (:-\).)s
  2553. X144 972 p (NOTE:)s
  2554. X18 r (BSD/386)s
  2555. X18 r (and)s
  2556. X18 r (possibly)s
  2557. X18 r (other)s
  2558. X18 r (operating)s
  2559. X18 r (systems)s
  2560. X18 r (with)s
  2561. X18 r ('Guelph)s
  2562. X17 r (NFS')s
  2563. X18 r (may)s
  2564. X18 r (suffer)s
  2565. X17 r (from)s
  2566. X18 r (the)s
  2567. X50 1047 p (symptom)s
  2568. X16 r (that)s
  2569. X16 r (previously)s
  2570. X17 r (uncached)s
  2571. X16 r (directories)s
  2572. X16 r (remain)s
  2573. X16 r (empty)s
  2574. X16 r (even)s
  2575. X17 r (when)s
  2576. X16 r (FTP)s
  2577. X16 r (transfer)s
  2578. X16 r (completes)s
  2579. X16 r (and)s
  2580. X50 1122 p (directories)s
  2581. X15 r (get)s
  2582. X14 r (\256lled.)s
  2583. X20 r (I)s
  2584. X15 r (don')s
  2585. X-1 r (t)s
  2586. X14 r (have)s
  2587. X14 r (any)s
  2588. X15 r (smart)s
  2589. X14 r (idea)s
  2590. X15 r (on)s
  2591. X14 r (how)s
  2592. X15 r (to)s
  2593. X14 r (\256x)s
  2594. X15 r (it)s
  2595. X14 r (except)s
  2596. X15 r (modifying)s
  2597. X15 r (the)s
  2598. X14 r (BSD)s
  2599. X15 r (kernel.)s
  2600. X20 r (I)s
  2601. X50 1198 p (hope)s
  2602. X15 r (4.4BSD)s
  2603. X15 r (have)s
  2604. X16 r (\256xed)s
  2605. X15 r (this)s
  2606. X15 r (bug.)s
  2607. X144 1273 p (NOTE:)s
  2608. X15 r (Luna2/Mach)s
  2609. X16 r (users)s
  2610. X15 r (must)s
  2611. X15 r (steal)s
  2612. Xf17 SF
  2613. X15 r (mount.o)s
  2614. Xf6 SF
  2615. X15 r (from)s
  2616. X16 r (Luna/UniOS-B)s
  2617. Xf17 SF
  2618. X15 r (libc.a)s
  2619. Xf6 SF
  2620. X(.)s
  2621. X144 1348 p (Y)s
  2622. X-5 r (ou)s
  2623. X17 r (must)s
  2624. X18 r (modify)s
  2625. Xf17 SF
  2626. X19 r (config/wwfs.conf)s
  2627. Xf6 SF
  2628. X18 r (accordingly)s
  2629. X-3 r (.)s
  2630. X28 r (It)s
  2631. X19 r (is)s
  2632. X18 r (referenced)s
  2633. X18 r (by)s
  2634. X18 r (various)s
  2635. X19 r (utilities)s
  2636. X18 r (including)s
  2637. X50 1424 p (shell)s
  2638. X15 r (scripts,)s
  2639. X15 r (perl)s
  2640. X16 r (scripts)s
  2641. X15 r (and)s
  2642. X15 r (tcl)s
  2643. X15 r (scripts.)s
  2644. X144 1499 p (Y)s
  2645. X-5 r (ou)s
  2646. X14 r (may)s
  2647. X15 r (need)s
  2648. X16 r (to)s
  2649. X15 r (edit)s
  2650. Xf17 SF
  2651. X15 r (config/Makefile.config)s
  2652. Xf6 SF
  2653. X15 r (and)s
  2654. X16 r (correctly)s
  2655. X15 r (set)s
  2656. X15 r (the)s
  2657. X15 r (following)s
  2658. X15 r (\257ags.)s
  2659. X144 1553 p 1108 2 ru
  2660. X143 1628 p 2 75 ru
  2661. X177 1606 p (name)s
  2662. X384 1628 p 2 75 ru
  2663. X418 1606 p (description)s
  2664. X1251 1628 p 2 75 ru
  2665. X144 1630 p 1108 2 ru
  2666. X143 1706 p 2 75 ru
  2667. Xf17 SF
  2668. X177 1683 p (ETCDIR)s
  2669. X384 1706 p 2 75 ru
  2670. X418 1683 p (wwmount)s
  2671. Xf6 SF
  2672. X15 r (and)s
  2673. Xf17 SF
  2674. X15 r (wwumount)s
  2675. Xf6 SF
  2676. X16 r (goes)s
  2677. X15 r (here)s
  2678. X1251 1706 p 2 75 ru
  2679. X143 1781 p 2 75 ru
  2680. Xf17 SF
  2681. X177 1758 p (LIBDIR)s
  2682. X384 1781 p 2 75 ru
  2683. X418 1758 p (libww.a)s
  2684. Xf6 SF
  2685. X15 r (goes)s
  2686. X15 r (here)s
  2687. X1251 1781 p 2 75 ru
  2688. X143 1856 p 2 75 ru
  2689. Xf17 SF
  2690. X177 1834 p (INCDIR)s
  2691. X384 1856 p 2 75 ru
  2692. X418 1834 p (libww.h)s
  2693. Xf6 SF
  2694. X15 r (goes)s
  2695. X15 r (here)s
  2696. X1251 1856 p 2 75 ru
  2697. X144 1858 p 1108 2 ru
  2698. X144 1938 p (Just)s
  2699. X17 r (type)s
  2700. Xf17 SF
  2701. X16 r (make)s
  2702. X29 r (install-client)s
  2703. Xf6 SF
  2704. X17 r (then)s
  2705. X16 r (it)s
  2706. X17 r (will)s
  2707. X16 r (install)s
  2708. Xf17 SF
  2709. X17 r (/etc/wwfs.conf)s
  2710. Xf6 SF
  2711. X(,)s
  2712. X17 r (mount)s
  2713. X16 r (commands,)s
  2714. X17 r (libraries)s
  2715. X50 2014 p (and)s
  2716. X15 r (header)s
  2717. X15 r (\256les.)s
  2718. XEP
  2719. X
  2720. X%%Page: 11 12
  2721. XBP
  2722. Xf19 SF
  2723. X50 647 p (Chapter)s
  2724. X29 r (3)s
  2725. Xf18 SF
  2726. X50 924 p (Administration)s
  2727. Xf6 SF
  2728. X50 1221 p (This)s
  2729. X15 r (chapter)s
  2730. X15 r (is)s
  2731. X15 r (written)s
  2732. X15 r (for)s
  2733. X15 r (the)s
  2734. X15 r (administrator)s
  2735. X15 r (of)s
  2736. X15 r (the)s
  2737. X15 r (Cluster)s
  2738. X15 r (Server)s
  2739. X15 r (\()s
  2740. Xf17 SF
  2741. X(csd)s
  2742. Xf6 SF
  2743. X(\).)s
  2744. X21 r (Please)s
  2745. X15 r (read)s
  2746. X15 r (Sections)s
  2747. X15 r (3.1)s
  2748. X15 r (and)s
  2749. X50 1297 p (3.4)s
  2750. X15 r (for)s
  2751. X15 r (starting)s
  2752. X16 r (up)s
  2753. Xf17 SF
  2754. X15 r (csd)s
  2755. Xf6 SF
  2756. X(.)s
  2757. Xf13 SF
  2758. X50 1494 p (3.1)s
  2759. X80 r (Server)s
  2760. X20 r (administration)s
  2761. Xf6 SF
  2762. X50 1633 p (The)s
  2763. X19 r (Cluster)s
  2764. X18 r (Server)s
  2765. X-1 r (,)s
  2766. Xf17 SF
  2767. X18 r (csd)s
  2768. Xf6 SF
  2769. X(,)s
  2770. X20 r (can)s
  2771. X19 r (be)s
  2772. X18 r (restarted)s
  2773. X19 r (anytime.)s
  2774. X30 r (Basically)s
  2775. X-2 r (,)s
  2776. X18 r (there)s
  2777. X19 r (is)s
  2778. X18 r (no)s
  2779. X19 r (loss)s
  2780. X19 r (of)s
  2781. X18 r (information)s
  2782. X19 r (due)s
  2783. X19 r (to)s
  2784. X50 1708 p (termination,)s
  2785. X14 r (since)s
  2786. X14 r (cached)s
  2787. X15 r (information)s
  2788. X14 r (is)s
  2789. X14 r (kept)s
  2790. X14 r (on)s
  2791. X14 r (the)s
  2792. X14 r (disk.)s
  2793. X20 r (Y)s
  2794. X-5 r (ou)s
  2795. X13 r (should)s
  2796. X14 r (be)s
  2797. X14 r (careful)s
  2798. X15 r (however)s
  2799. X-2 r (,)s
  2800. X13 r (since)s
  2801. X15 r (there)s
  2802. X50 1783 p (might)s
  2803. X15 r (be)s
  2804. X15 r (ongoing)s
  2805. X16 r (\256le)s
  2806. X15 r (transfer)s
  2807. X-2 r (,)s
  2808. X15 r (and)s
  2809. X15 r (there)s
  2810. X15 r (might)s
  2811. X15 r (be)s
  2812. X16 r (some)s
  2813. X15 r (users)s
  2814. X15 r (accessing)s
  2815. X15 r (WWFS.)s
  2816. Xf11 SF
  2817. X50 1952 p (Starting)s
  2818. X17 r (server)s
  2819. X16 r (process)s
  2820. Xf6 SF
  2821. X50 2069 p (T)s
  2822. X-3 r (o)s
  2823. X21 r (start)s
  2824. X23 r (the)s
  2825. X22 r (server)s
  2826. X23 r (process,)s
  2827. X24 r (become)s
  2828. X23 r (superuser)s
  2829. X22 r (and)s
  2830. X23 r (just)s
  2831. X22 r (type)s
  2832. Xf17 SF
  2833. X23 r (csd-nanny)s
  2834. Xf6 SF
  2835. X22 r (to)s
  2836. X23 r (start)s
  2837. Xf17 SF
  2838. X23 r (csd)s
  2839. Xf6 SF
  2840. X(.)s
  2841. X42 r (\(presumably)s
  2842. X50 2144 p (installed)s
  2843. X15 r (at)s
  2844. Xf17 SF
  2845. X15 r (WWFSDIR/bin)s
  2846. Xf6 SF
  2847. X(\).)s
  2848. X144 2220 p (NOTE:)s
  2849. X13 r (WWFS)s
  2850. X13 r (provides)s
  2851. X13 r (non-stop)s
  2852. X14 r (operation)s
  2853. X13 r (with)s
  2854. Xf17 SF
  2855. X13 r (csd-nanny)s
  2856. Xf6 SF
  2857. X(,)s
  2858. X13 r (an)s
  2859. X13 r (iterative)s
  2860. X14 r (and)s
  2861. X13 r (automatic)s
  2862. X13 r (debugger)s
  2863. X50 2295 p (front-end)s
  2864. X21 r (speci\256cally)s
  2865. X21 r (written)s
  2866. X21 r (for)s
  2867. X21 r (non-stop)s
  2868. X21 r (programs)s
  2869. X21 r (such)s
  2870. X21 r (as)s
  2871. Xf17 SF
  2872. X21 r (csd)s
  2873. Xf6 SF
  2874. X(.)s
  2875. Xf17 SF
  2876. X38 r (csd-nanny)s
  2877. Xf6 SF
  2878. X21 r (is)s
  2879. X21 r (included)s
  2880. X21 r (in)s
  2881. Xf17 SF
  2882. X21 r (saps/)s
  2883. Xf6 SF
  2884. X50 2370 p (directory)s
  2885. X16 r (of)s
  2886. X15 r (this)s
  2887. X16 r (distribution.)s
  2888. X22 r (For)s
  2889. X15 r (more)s
  2890. X16 r (information)s
  2891. X15 r (on)s
  2892. Xf17 SF
  2893. X16 r (csd-nanny)s
  2894. Xf6 SF
  2895. X(,)s
  2896. X16 r (read)s
  2897. X16 r (the)s
  2898. X15 r (source,)s
  2899. X16 r (which)s
  2900. X16 r (is)s
  2901. X15 r (actually)s
  2902. X50 2446 p (a)s
  2903. X15 r (small)s
  2904. X15 r (perl)s
  2905. X16 r (script)s
  2906. X15 r (and)s
  2907. X15 r (is)s
  2908. X15 r (well-documented.)s
  2909. Xf11 SF
  2910. X50 2614 p (T)s
  2911. X-5 r (erminating)s
  2912. X15 r (server)s
  2913. X17 r (process)s
  2914. Xf17 SF
  2915. X50 2731 p (csd)s
  2916. Xf6 SF
  2917. X19 r (can)s
  2918. X18 r (be)s
  2919. X19 r (killed)s
  2920. X19 r (just)s
  2921. X19 r (as)s
  2922. X18 r (other)s
  2923. X19 r (daemon)s
  2924. X19 r (processes.)s
  2925. X31 r (Y)s
  2926. X-5 r (ou)s
  2927. X17 r (can)s
  2928. X19 r (use)s
  2929. X19 r (either)s
  2930. Xf17 SF
  2931. X18 r (SIGINT)s
  2932. Xf6 SF
  2933. X(,)s
  2934. Xf17 SF
  2935. X19 r (SIGTERM)s
  2936. Xf6 SF
  2937. X19 r (or)s
  2938. Xf17 SF
  2939. X19 r (SIGKILL)s
  2940. Xf6 SF
  2941. X(.)s
  2942. X50 2806 p (T)s
  2943. X-3 r (ermination)s
  2944. X10 r (is)s
  2945. X12 r (logged)s
  2946. X12 r (as)s
  2947. X12 r (such,)s
  2948. X12 r (using)s
  2949. Xf17 SF
  2950. X12 r (syslog)s
  2951. Xf6 SF
  2952. X11 r (facility)s
  2953. X-3 r (.)s
  2954. Xf17 SF
  2955. X19 r (csd-nanny)s
  2956. Xf6 SF
  2957. X11 r (detects)s
  2958. X12 r (termination)s
  2959. X12 r (and)s
  2960. X11 r (automatically)s
  2961. X50 2882 p (restarts)s
  2962. Xf17 SF
  2963. X15 r (csd)s
  2964. Xf6 SF
  2965. X(.)s
  2966. X144 2957 p (If)s
  2967. X11 r (you)s
  2968. X12 r (really)s
  2969. X11 r (want)s
  2970. X12 r (to)s
  2971. X11 r (stop)s
  2972. Xf17 SF
  2973. X11 r (csd)s
  2974. Xf6 SF
  2975. X(,)s
  2976. X13 r (\256rst)s
  2977. X11 r (kill)s
  2978. Xf17 SF
  2979. X11 r (csd-nanny)s
  2980. Xf6 SF
  2981. X12 r (then)s
  2982. Xf17 SF
  2983. X11 r (csd)s
  2984. Xf6 SF
  2985. X(.)s
  2986. X19 r (But)s
  2987. X11 r (beware:)s
  2988. X19 r (if)s
  2989. X11 r (someone)s
  2990. X12 r (was)s
  2991. X11 r (accessing)s
  2992. X50 3032 p (WWFS)s
  2993. X11 r (when)s
  2994. X10 r (you)s
  2995. X11 r (stopped)s
  2996. X10 r (the)s
  2997. X11 r (daemon,)s
  2998. X11 r (his)s
  2999. X11 r (shell)s
  3000. X11 r (\(or)s
  3001. X10 r (other)s
  3002. X11 r (accessing)s
  3003. X10 r (processes,)s
  3004. X12 r (say)s
  3005. X10 r (Emacs\))s
  3006. X11 r (will)s
  3007. X11 r (become)s
  3008. X50 3108 p (frozen.)s
  3009. X20 r (This)s
  3010. X15 r (is)s
  3011. X16 r (normal)s
  3012. X15 r (NFS)s
  3013. X15 r (behaviour)s
  3014. X15 r (and)s
  3015. X16 r (not)s
  3016. X15 r (a)s
  3017. X15 r (bug)s
  3018. X15 r (in)s
  3019. X15 r (WWFS.)s
  3020. Xf11 SF
  3021. X50 3276 p (Managing)s
  3022. X17 r (cache)s
  3023. Xf6 SF
  3024. X50 3393 p (Currently)s
  3025. X-3 r (,)s
  3026. Xf17 SF
  3027. X18 r (csd)s
  3028. Xf6 SF
  3029. X19 r (does)s
  3030. X19 r (not)s
  3031. X18 r (reclaim)s
  3032. X19 r (secondary)s
  3033. X19 r (storage)s
  3034. X18 r (by)s
  3035. X19 r (itself.)s
  3036. X30 r (The)s
  3037. X19 r (shell)s
  3038. X18 r (script)s
  3039. Xf17 SF
  3040. X19 r (expire.sh)s
  3041. Xf6 SF
  3042. X(,)s
  3043. X19 r (which)s
  3044. X19 r (has)s
  3045. X50 3468 p (been)s
  3046. X17 r (included)s
  3047. X17 r (in)s
  3048. X18 r (this)s
  3049. X17 r (distribution,)s
  3050. X17 r (should)s
  3051. X18 r (be)s
  3052. X17 r (invoked)s
  3053. X17 r (regularly)s
  3054. X17 r (via)s
  3055. Xf17 SF
  3056. X17 r (crontab)s
  3057. Xf6 SF
  3058. X18 r (\(typically)s
  3059. X17 r (once)s
  3060. X17 r (a)s
  3061. X17 r (week\).)s
  3062. X50 3544 p (It)s
  3063. X15 r (expires)s
  3064. X15 r (\252inactive\272)s
  3065. X15 r (\256les)s
  3066. X14 r (that)s
  3067. X15 r (haven't)s
  3068. X14 r (been)s
  3069. X15 r (accessed)s
  3070. X15 r (for)s
  3071. X15 r (more)s
  3072. X15 r (than)s
  3073. X14 r (two)s
  3074. X15 r (weeks,)s
  3075. X15 r (so)s
  3076. X15 r (that)s
  3077. X15 r (cache)s
  3078. X15 r (partition)s
  3079. X50 3619 p (will)s
  3080. X12 r (not)s
  3081. X13 r (be)s
  3082. X12 r (\256lled)s
  3083. X12 r (up)s
  3084. X13 r (with)s
  3085. X12 r (\252no)s
  3086. X12 r (longer)s
  3087. X12 r (referenced\272)s
  3088. X13 r (\256les.)s
  3089. X19 r (Directories)s
  3090. X12 r (do)s
  3091. X13 r (not)s
  3092. X12 r (expire,)s
  3093. X13 r (but)s
  3094. X12 r (obsolete)s
  3095. X13 r (directory)s
  3096. X50 3694 p (listings)s
  3097. X15 r (are)s
  3098. X15 r (automatically)s
  3099. X16 r (discarded)s
  3100. X15 r (and)s
  3101. X15 r (superseded)s
  3102. X15 r (by)s
  3103. X16 r (newer)s
  3104. X15 r (ones.)s
  3105. X1246 3846 p (1)s
  3106. X-2 r (1)s
  3107. XEP
  3108. X
  3109. X%%Page: 12 13
  3110. XBP
  3111. Xf6 SF
  3112. X50 66 p (12)s
  3113. Xf8 SF
  3114. X1481 r (CHAPTER)s
  3115. X15 r (3.)s
  3116. X35 r (ADMINISTRA)s
  3117. X-2 r (TION)s
  3118. Xf6 SF
  3119. X144 232 p (NOTE:)s
  3120. X22 r (It')s
  3121. X-2 r (s)s
  3122. X21 r (okay)s
  3123. X22 r (to)s
  3124. X21 r (delete)s
  3125. X22 r (cached)s
  3126. X22 r (\256les)s
  3127. X22 r (selectively)s
  3128. X-3 r (,)s
  3129. X23 r (but)s
  3130. X22 r (it')s
  3131. X-2 r (s)s
  3132. X21 r (not)s
  3133. X21 r (recommended)s
  3134. X22 r (to)s
  3135. X22 r (delete)s
  3136. X22 r (cached)s
  3137. X50 307 p (directory)s
  3138. X14 r (\256les)s
  3139. X14 r (\(i.e.,)s
  3140. X15 r (\256les)s
  3141. X14 r (within)s
  3142. Xf17 SF
  3143. X14 r (dir/)s
  3144. Xf6 SF
  3145. X14 r (directory\))s
  3146. X14 r (unless)s
  3147. X14 r (you)s
  3148. X14 r (want)s
  3149. X14 r (to)s
  3150. X14 r (remove)s
  3151. X14 r (cached)s
  3152. X14 r (information)s
  3153. X15 r (for)s
  3154. X14 r (the)s
  3155. X50 382 p (whole)s
  3156. X20 r (volume.)s
  3157. X35 r (Even)s
  3158. X20 r (if)s
  3159. X20 r (all)s
  3160. X20 r (cached)s
  3161. X20 r (directory)s
  3162. X21 r (\256les)s
  3163. X20 r (were)s
  3164. X20 r (lost,)s
  3165. Xf17 SF
  3166. X21 r (csd)s
  3167. Xf6 SF
  3168. X20 r (continues)s
  3169. X20 r (to)s
  3170. X20 r (function)s
  3171. X21 r (but)s
  3172. Xf17 SF
  3173. X20 r (csd)s
  3174. Xf6 SF
  3175. X20 r (will)s
  3176. X50 458 p (occasionally)s
  3177. X15 r (forget)s
  3178. X14 r (which)s
  3179. X16 r (\256le)s
  3180. X15 r (is)s
  3181. X15 r (cached)s
  3182. X15 r (and)s
  3183. X15 r (which)s
  3184. X16 r (is)s
  3185. X15 r (not.)s
  3186. X144 548 p (Other)s
  3187. X15 r (management)s
  3188. X16 r (tools,)s
  3189. X15 r (such)s
  3190. X15 r (as)s
  3191. X16 r (\256le)s
  3192. X15 r (system)s
  3193. X15 r (consistency)s
  3194. X16 r (checker)s
  3195. X-2 r (,)s
  3196. X14 r (will)s
  3197. X16 r (be)s
  3198. X15 r (available)s
  3199. X15 r (in)s
  3200. X16 r (future)s
  3201. X15 r (ver-)s
  3202. X50 623 p (sions.)s
  3203. X144 713 p (If)s
  3204. Xf17 SF
  3205. X13 r (csd)s
  3206. Xf6 SF
  3207. X12 r (was)s
  3208. X13 r (accidentally)s
  3209. X13 r (killed)s
  3210. X12 r (by)s
  3211. X13 r (someone,)s
  3212. X13 r (even)s
  3213. X12 r (with)s
  3214. Xf17 SF
  3215. X13 r (SIGKILL)s
  3216. Xf6 SF
  3217. X(,)s
  3218. X13 r (the)s
  3219. X12 r (chances)s
  3220. X13 r (are)s
  3221. X13 r (that)s
  3222. X12 r (user)s
  3223. X2 r (')s
  3224. X-2 r (s)s
  3225. X12 r (ongoing)s
  3226. X50 788 p (\256le)s
  3227. X14 r (transfers)s
  3228. X14 r (weren't)s
  3229. X13 r (lost;)s
  3230. X15 r (just)s
  3231. X14 r (take)s
  3232. X14 r (a)s
  3233. X14 r (look)s
  3234. X14 r (at)s
  3235. X15 r (the)s
  3236. Xf17 SF
  3237. X14 r (ongoing)s
  3238. Xf6 SF
  3239. X14 r (subdirectory)s
  3240. X14 r (of)s
  3241. Xf17 SF
  3242. X14 r (WWFSDIR)s
  3243. Xf6 SF
  3244. X(,)s
  3245. X14 r (where)s
  3246. X14 r (interim)s
  3247. X14 r (\256les)s
  3248. X50 864 p (are)s
  3249. X17 r (kept.)s
  3250. X24 r (Signi\256cant)s
  3251. X17 r (amount)s
  3252. X16 r (of)s
  3253. X17 r (effort)s
  3254. X15 r (have)s
  3255. X17 r (been)s
  3256. X17 r (paid)s
  3257. X16 r (so)s
  3258. X17 r (that)s
  3259. X16 r (daemon)s
  3260. X17 r (can)s
  3261. X17 r (survive)s
  3262. X16 r (virtually)s
  3263. X17 r (eternally)s
  3264. X-3 r (,)s
  3265. X50 939 p (and)s
  3266. X15 r (can)s
  3267. X15 r (be)s
  3268. X16 r (restarted)s
  3269. X15 r (anytime)s
  3270. X15 r (without)s
  3271. X15 r (loss)s
  3272. X16 r (of)s
  3273. X15 r (data.)s
  3274. Xf11 SF
  3275. X50 1193 p (Snooping)s
  3276. X17 r (cache)s
  3277. X16 r (with)s
  3278. X17 r (perl)s
  3279. Xf6 SF
  3280. X50 1339 p (I)s
  3281. X14 r (have)s
  3282. X15 r (written)s
  3283. Xf17 SF
  3284. X14 r (libmm.pl)s
  3285. Xf6 SF
  3286. X(,)s
  3287. X14 r (the)s
  3288. X15 r (Maru-Maru)s
  3289. X14 r (library)s
  3290. X14 r (\(counterpart)s
  3291. X14 r (of)s
  3292. X15 r (W)s
  3293. X-4 r (aku-W)s
  3294. X-5 r (aku)s
  3295. X13 r (in)s
  3296. X15 r (Japanese\))s
  3297. X14 r (in)s
  3298. X14 r (the)s
  3299. X14 r (hope)s
  3300. X50 1414 p (that)s
  3301. X19 r (perl)s
  3302. X18 r (scripts)s
  3303. X19 r (built)s
  3304. X18 r (upon)s
  3305. X19 r (this)s
  3306. X18 r (package)s
  3307. X19 r (complements)s
  3308. X19 r (features)s
  3309. X18 r (not)s
  3310. X19 r (implemented)s
  3311. X18 r (in)s
  3312. Xf17 SF
  3313. X19 r (csd)s
  3314. Xf6 SF
  3315. X(,)s
  3316. X19 r (thereby)s
  3317. X19 r (en-)s
  3318. X50 1490 p (abling)s
  3319. X15 r (much)s
  3320. X14 r (more)s
  3321. X15 r (advanced)s
  3322. X15 r (features)s
  3323. X15 r (such)s
  3324. X14 r (as)s
  3325. X15 r (cache)s
  3326. X15 r (strategy)s
  3327. X15 r (selection,)s
  3328. X15 r (cache)s
  3329. X14 r (statistics)s
  3330. X15 r (and)s
  3331. X15 r (cache)s
  3332. X15 r (con-)s
  3333. X50 1565 p (sistency)s
  3334. X17 r (management.)s
  3335. X24 r (I)s
  3336. X17 r (have)s
  3337. X16 r (also)s
  3338. X17 r (added)s
  3339. X17 r (UIP)s
  3340. X16 r (commands)s
  3341. X17 r (that)s
  3342. X17 r (enables)s
  3343. X16 r (close)s
  3344. X17 r (collaboration)s
  3345. X17 r (of)s
  3346. Xf17 SF
  3347. X16 r (csd)s
  3348. Xf6 SF
  3349. X17 r (and)s
  3350. X50 1640 p (these)s
  3351. X15 r (perl)s
  3352. X15 r (programs.)s
  3353. X144 1730 p (NOTE:)s
  3354. X16 r (This)s
  3355. X15 r (package)s
  3356. X16 r (works)s
  3357. X15 r (only)s
  3358. X16 r (on)s
  3359. X16 r (localhost)s
  3360. X15 r (\(that)s
  3361. X16 r (is,)s
  3362. X15 r (the)s
  3363. X16 r (machine)s
  3364. X16 r (running)s
  3365. X15 r (csd\))s
  3366. X16 r (for)s
  3367. X15 r (security)s
  3368. X16 r (rea-)s
  3369. X50 1806 p (sons.)s
  3370. X144 1896 p (Several)s
  3371. X20 r (sample)s
  3372. X20 r (perl)s
  3373. X20 r (scripts)s
  3374. X20 r (are)s
  3375. X20 r (provided)s
  3376. X19 r (in)s
  3377. X20 r (the)s
  3378. Xf17 SF
  3379. X20 r (libww/)s
  3380. Xf6 SF
  3381. X20 r (subdirectory)s
  3382. X20 r (of)s
  3383. X20 r (this)s
  3384. X20 r (distribution;)s
  3385. X22 r (I)s
  3386. X20 r (hope)s
  3387. X50 1971 p (these)s
  3388. X15 r (examples)s
  3389. X15 r (facilitate)s
  3390. X16 r (writing)s
  3391. X15 r (perl)s
  3392. X15 r (scripts)s
  3393. X15 r (for)s
  3394. END_OF_FILE
  3395.   if test 45673 -ne `wc -c <'doc/manual.ps.B'`; then
  3396.     echo shar: \"'doc/manual.ps.B'\" unpacked with wrong size!
  3397.   elif test -f 'doc/manual.ps.A' && test -f 'doc/manual.ps.C'; then
  3398.     echo shar: Combining  \"'doc/manual.ps'\" \(186887 characters\)
  3399.     cat 'doc/manual.ps.A' 'doc/manual.ps.B' 'doc/manual.ps.C' > 'doc/manual.ps'
  3400.     if test 186887 -ne `wc -c <'doc/manual.ps'`; then
  3401.       echo shar: \"'doc/manual.ps'\" combined with wrong size!
  3402.     else
  3403.       rm doc/manual.ps.A doc/manual.ps.B doc/manual.ps.C
  3404.     fi
  3405.   fi
  3406.   # end of 'doc/manual.ps.B'
  3407. fi
  3408. if test -f 'mosaic/Mosaic-2.0+wwfs.diff' -a "${1}" != "-c" ; then 
  3409.   echo shar: Will not clobber existing file \"'mosaic/Mosaic-2.0+wwfs.diff'\"
  3410. else
  3411.   echo shar: Extracting \"'mosaic/Mosaic-2.0+wwfs.diff'\" \(31052 characters\)
  3412.   sed "s/^X//" >'mosaic/Mosaic-2.0+wwfs.diff' <<'END_OF_FILE'
  3413. XBinary files Mosaic-2.0/ID and Mosaic-2.0+wwfs/ID differ
  3414. Xdiff -c -r -N Mosaic-2.0/Makefile Mosaic-2.0+wwfs/Makefile
  3415. X*** Mosaic-2.0/Makefile    Tue Nov  9 18:21:49 1993
  3416. X--- Mosaic-2.0+wwfs/Makefile    Sun Nov 21 00:50:34 1993
  3417. X***************
  3418. X*** 141,147 ****
  3419. X--- 141,153 ----
  3420. X  waislibdir = $(waisroot)/bin
  3421. X  waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
  3422. X  
  3423. X+ #### DIRECT WWFS SUPPORT
  3424. X  
  3425. X+ wwfsroot = /home/is/youki-k/work/wwfs-108.0
  3426. X+ wwfsflags = -I$(wwfsroot)/libww
  3427. X+ wwfslibdir = $(wwfsroot)/libww
  3428. X+ wwfslibs = $(wwfslibdir)/libww.a
  3429. X+ 
  3430. X  #### Customization flags:
  3431. X  #### . If you want Mosaic to come up with monochrome colors by default,
  3432. X  ####   use -DMONO_DEFAULT
  3433. X***************
  3434. X*** 179,197 ****
  3435. X  
  3436. X  libwww2::
  3437. X      @echo --- Building libwww2
  3438. X!     cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags)"
  3439. X  
  3440. X  src::
  3441. X      @echo --- Building src
  3442. X!     cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3443. X  
  3444. X  src-purifyd::
  3445. X      @echo --- Building Purify'd src
  3446. X!     cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3447. X  
  3448. X  src-quantifyd::
  3449. X      @echo --- Building Quantify'd src
  3450. X!     cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3451. X  
  3452. X  libnet::
  3453. X      @echo --- Building libnet
  3454. X--- 185,203 ----
  3455. X  
  3456. X  libwww2::
  3457. X      @echo --- Building libwww2
  3458. X!     cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(wwfsflags)"
  3459. X  
  3460. X  src::
  3461. X      @echo --- Building src
  3462. X!     cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3463. X  
  3464. X  src-purifyd::
  3465. X      @echo --- Building Purify'd src
  3466. X!     cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3467. X  
  3468. X  src-quantifyd::
  3469. X      @echo --- Building Quantify'd src
  3470. X!     cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3471. X  
  3472. X  libnet::
  3473. X      @echo --- Building libnet
  3474. Xdiff -c -r -N Mosaic-2.0/Makefile.alpha Mosaic-2.0+wwfs/Makefile.alpha
  3475. X*** Mosaic-2.0/Makefile.alpha    Tue Nov  9 18:21:52 1993
  3476. X--- Mosaic-2.0+wwfs/Makefile.alpha    Tue Nov 16 04:36:53 1993
  3477. X***************
  3478. X*** 139,145 ****
  3479. X--- 139,151 ----
  3480. X  #waislibdir = $(waisroot)/bin
  3481. X  #waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
  3482. X  
  3483. X+ #### DIRECT WWFS SUPPORT
  3484. X  
  3485. X+ wwfsroot = /home/is/youki-k/work/wwfs-108.0
  3486. X+ wwfsflags = -I$(wwfsroot)/libww
  3487. X+ wwfslibdir = $(wwfsroot)/libww
  3488. X+ wwfslibs = $(wwfslibdir)/libww.a
  3489. X+ 
  3490. X  #### Customization flags:
  3491. X  #### . If you want Mosaic to come up with monochrome colors by default,
  3492. X  ####   use -DMONO_DEFAULT
  3493. X***************
  3494. X*** 177,195 ****
  3495. X  
  3496. X  libwww2::
  3497. X      @echo --- Building libwww2
  3498. X!     cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags)"
  3499. X  
  3500. X  src::
  3501. X      @echo --- Building src
  3502. X!     cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3503. X  
  3504. X  src-purifyd::
  3505. X      @echo --- Building Purify'd src
  3506. X!     cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3507. X  
  3508. X  src-quantifyd::
  3509. X      @echo --- Building Quantify'd src
  3510. X!     cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3511. X  
  3512. X  libnet::
  3513. X      @echo --- Building libnet
  3514. X--- 183,201 ----
  3515. X  
  3516. X  libwww2::
  3517. X      @echo --- Building libwww2
  3518. X!     cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(wwfsflags)"
  3519. X  
  3520. X  src::
  3521. X      @echo --- Building src
  3522. X!     cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3523. X  
  3524. X  src-purifyd::
  3525. X      @echo --- Building Purify'd src
  3526. X!     cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3527. X  
  3528. X  src-quantifyd::
  3529. X      @echo --- Building Quantify'd src
  3530. X!     cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3531. X  
  3532. X  libnet::
  3533. X      @echo --- Building libnet
  3534. Xdiff -c -r -N Mosaic-2.0/Makefile.dec Mosaic-2.0+wwfs/Makefile.dec
  3535. X*** Mosaic-2.0/Makefile.dec    Tue Nov  9 18:38:54 1993
  3536. X--- Mosaic-2.0+wwfs/Makefile.dec    Sat Nov 20 23:59:21 1993
  3537. X***************
  3538. X*** 12,20 ****
  3539. X  #### On non-SGI's, this should be ranlib.
  3540. X  RANLIB = ranlib
  3541. X  
  3542. X! CC = cc
  3543. X  #### On Sun's, this should be gcc (ANSI required).
  3544. X! # CC = gcc
  3545. X  
  3546. X  
  3547. X  #### For a few files in the source, some compilers may need to be kicked
  3548. X--- 12,20 ----
  3549. X  #### On non-SGI's, this should be ranlib.
  3550. X  RANLIB = ranlib
  3551. X  
  3552. X! # CC = cc
  3553. X  #### On Sun's, this should be gcc (ANSI required).
  3554. X! CC = gcc
  3555. X  
  3556. X  
  3557. X  #### For a few files in the source, some compilers may need to be kicked
  3558. X***************
  3559. X*** 38,50 ****
  3560. X  sysconfigflags =
  3561. X  
  3562. X  #### System libraries.
  3563. X! syslibs = -lPW -lsun -lmalloc
  3564. X  #### For AIX 3.2
  3565. X  # syslibs = -lPW -lbsd
  3566. X  #### For most other Motif platforms:
  3567. X  # syslibs = -lPW
  3568. X  #### For Sun's and Ultrix and HP and BSD/386:
  3569. X! syslibs =
  3570. X  #### For Sun's with no DNS:
  3571. X  # syslibs = -lresolv
  3572. X  #### For SCO ODT:
  3573. X--- 38,50 ----
  3574. X  sysconfigflags =
  3575. X  
  3576. X  #### System libraries.
  3577. X! # syslibs = -lPW -lsun -lmalloc
  3578. X  #### For AIX 3.2
  3579. X  # syslibs = -lPW -lbsd
  3580. X  #### For most other Motif platforms:
  3581. X  # syslibs = -lPW
  3582. X  #### For Sun's and Ultrix and HP and BSD/386:
  3583. X! syslibs = -ljsy -lim
  3584. X  #### For Sun's with no DNS:
  3585. X  # syslibs = -lresolv
  3586. X  #### For SCO ODT:
  3587. X***************
  3588. X*** 72,77 ****
  3589. X--- 72,79 ----
  3590. X  
  3591. X  #### X library locations.
  3592. X  xlibs = -lXm_s -lXmu -lXt_s -lX11_s
  3593. X+ #### X library locations.
  3594. X+ # xlibs = -lXm_s -lXmu -lXt_s -lX11_s
  3595. X  #### For Sun's (at least running stock X/Motif as installed on our machines):
  3596. X  # xlibs = /usr/lib/libXm.a /usr/lib/libXmu.a /usr/lib/libXt.a /usr/lib/libXext.a /usr/lib/libX11.a -lm
  3597. X  #### For HP-UX 8.00:
  3598. X***************
  3599. X*** 88,94 ****
  3600. X  # xlibs = -lXtXm_s -lXmu -lX11_s
  3601. X  #### For nearly everyone else:
  3602. X  xlibs = -lXm -lXmu -lXt -lX11
  3603. X! xlibs = -L/usr/local/lib -lXm -lXmu -lXt -lX11
  3604. X  #### For BSD/386:
  3605. X  # xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
  3606. X  #### For Motorola SVR4:
  3607. X--- 90,96 ----
  3608. X  # xlibs = -lXtXm_s -lXmu -lX11_s
  3609. X  #### For nearly everyone else:
  3610. X  xlibs = -lXm -lXmu -lXt -lX11
  3611. X! # xlibs = -L/usr/local/lib -lXm -lXmu -lXt -lX11
  3612. X  #### For BSD/386:
  3613. X  # xlibs = -L/usr/X11/lib -lXm -lXmu -lXt -lX11
  3614. X  #### For Motorola SVR4:
  3615. X***************
  3616. X*** 116,124 ****
  3617. X  dtmdirs = libdtm libnet
  3618. X  dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
  3619. X  dtmflags = -DHAVE_DTM -I.. -I../libnet
  3620. X! hdfdir = /hdf/install/dec
  3621. X! hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
  3622. X! hdfflags = -DHAVE_HDF -I$(hdfdir)/include
  3623. X  
  3624. X  
  3625. X  #### DIRECT WAIS SUPPORT
  3626. X--- 118,126 ----
  3627. X  dtmdirs = libdtm libnet
  3628. X  dtmlibs = ../libnet/libnet.a ../libdtm/libdtm.a
  3629. X  dtmflags = -DHAVE_DTM -I.. -I../libnet
  3630. X! # hdfdir = /hdf/install/dec
  3631. X! # hdflibs = $(hdfdir)/lib/libnetcdf.a $(hdfdir)/lib/libdf.a
  3632. X! # hdfflags = -DHAVE_HDF -I$(hdfdir)/include
  3633. X  
  3634. X  
  3635. X  #### DIRECT WAIS SUPPORT
  3636. X***************
  3637. X*** 141,146 ****
  3638. X--- 143,154 ----
  3639. X  #waislibdir = $(waisroot)/bin
  3640. X  #waislibs = $(waislibdir)/inv.a $(waislibdir)/wais.a $(waislibdir)/libftw.a -lm
  3641. X  
  3642. X+ #### DIRECT WWFS SUPPORT
  3643. X+ 
  3644. X+ wwfsroot = /home/is/youki-k/work/wwfs-108.0
  3645. X+ wwfsflags = -I$(wwfsroot)/libww
  3646. X+ wwfslibdir = $(wwfsroot)/libww
  3647. X+ wwfslibs = $(wwfslibdir)/libww.a
  3648. X  
  3649. X  #### Customization flags:
  3650. X  #### . If you want Mosaic to come up with monochrome colors by default,
  3651. X***************
  3652. X*** 179,197 ****
  3653. X  
  3654. X  libwww2::
  3655. X      @echo --- Building libwww2
  3656. X!     cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags)"
  3657. X  
  3658. X  src::
  3659. X      @echo --- Building src
  3660. X!     cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3661. X  
  3662. X  src-purifyd::
  3663. X      @echo --- Building Purify'd src
  3664. X!     cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3665. X  
  3666. X  src-quantifyd::
  3667. X      @echo --- Building Quantify'd src
  3668. X!     cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" LIBWWW_DIR=../libwww2
  3669. X  
  3670. X  libnet::
  3671. X      @echo --- Building libnet
  3672. X--- 187,205 ----
  3673. X  
  3674. X  libwww2::
  3675. X      @echo --- Building libwww2
  3676. X!     cd libwww2; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(knrflag) $(waisflags) $(wwfsflags)"
  3677. X  
  3678. X  src::
  3679. X      @echo --- Building src
  3680. X!     cd src; make CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3681. X  
  3682. X  src-purifyd::
  3683. X      @echo --- Building Purify'd src
  3684. X!     cd src; make PURIFY=$(PURIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3685. X  
  3686. X  src-quantifyd::
  3687. X      @echo --- Building Quantify'd src
  3688. X!     cd src; make PURIFY=$(QUANTIFY) CC=$(CC) RANLIB=$(RANLIB) CFLAGS="$(CFLAGS) $(customflags) $(xinc) $(dtmflags) $(hdfflags) -I.. -I../libXmx -I../libwww2" AUX_CFLAGS=$(knrflag) X_LIBS="$(xlibs)" SYS_LIBS="$(syslibs)" DTM_LIBS="$(dtmlibs)" HDF_LIBS="$(hdflibs)" WAIS_LIBS="$(waislibs)" WWFS_LIBS="$(wwfslibs)" LIBWWW_DIR=../libwww2
  3689. X  
  3690. X  libnet::
  3691. X      @echo --- Building libnet
  3692. Xdiff -c -r -N Mosaic-2.0/libwww2/HTAccess.c Mosaic-2.0+wwfs/libwww2/HTAccess.c
  3693. X*** Mosaic-2.0/libwww2/HTAccess.c    Sun Oct 31 07:56:57 1993
  3694. X--- Mosaic-2.0+wwfs/libwww2/HTAccess.c    Tue Nov 16 04:31:03 1993
  3695. X***************
  3696. X*** 79,85 ****
  3697. X  */
  3698. X  PRIVATE void HTAccessInit NOARGS            /* Call me once */
  3699. X  {
  3700. X! extern HTProtocol HTTP, HTFile, HTTelnet, HTTn3270, HTRlogin;
  3701. X  extern HTProtocol HTFTP, HTNews, HTGopher;
  3702. X  #ifdef DIRECT_WAIS
  3703. X  extern HTProtocol HTWAIS;
  3704. X--- 79,85 ----
  3705. X  */
  3706. X  PRIVATE void HTAccessInit NOARGS            /* Call me once */
  3707. X  {
  3708. X! extern HTProtocol HTTP, HTFile, HTWWFS, HTTelnet, HTTn3270, HTRlogin;
  3709. X  extern HTProtocol HTFTP, HTNews, HTGopher;
  3710. X  #ifdef DIRECT_WAIS
  3711. X  extern HTProtocol HTWAIS;
  3712. X***************
  3713. X*** 93,98 ****
  3714. X--- 93,99 ----
  3715. X  
  3716. X      HTRegisterProtocol(&HTTP);
  3717. X      HTRegisterProtocol(&HTFile);
  3718. X+     HTRegisterProtocol(&HTWWFS);
  3719. X      HTRegisterProtocol(&HTTelnet);
  3720. X      HTRegisterProtocol(&HTTn3270);
  3721. X      HTRegisterProtocol(&HTRlogin);
  3722. Xdiff -c -r -N Mosaic-2.0/libwww2/HTWWFS.c Mosaic-2.0+wwfs/libwww2/HTWWFS.c
  3723. X*** Mosaic-2.0/libwww2/HTWWFS.c
  3724. X--- Mosaic-2.0+wwfs/libwww2/HTWWFS.c    Sat Nov 20 23:05:36 1993
  3725. X***************
  3726. X*** 0 ****
  3727. X--- 1,452 ----
  3728. X+ /*            WWFS Access                HTWWFS.c
  3729. X+ **            ===========
  3730. X+ **
  3731. X+ **    This is unix-specific code in general.
  3732. X+ **    These are routines for file access used by browsers.
  3733. X+ **
  3734. X+ ** History:
  3735. X+ **       Feb 91    Written Tim Berners-Lee CERN/CN
  3736. X+ **       Apr 91    vms-vms access included using DECnet syntax
  3737. X+ **    26 Jun 92 (JFG) When running over DECnet, suppressed FTP.
  3738. X+ **            Fixed access bug for relative names on VMS.
  3739. X+ **       Nov 93    Derived from HTFile.c; Youki Kadobayashi WIDE
  3740. X+ **            deleted VMS code for simplicity.
  3741. X+ **
  3742. X+ */
  3743. X+ 
  3744. X+ #include "HTFile.h"        /* Implemented here */
  3745. X+ 
  3746. X+ #define MULTI_SUFFIX ".multi"   /* Extension for scanning formats */
  3747. X+ 
  3748. X+ #include <stdio.h>
  3749. X+ #include <sys/param.h>
  3750. X+ #include "HText.h"
  3751. X+ #include "HTUtils.h"
  3752. X+ 
  3753. X+ #include "HTParse.h"
  3754. X+ #include "tcp.h"
  3755. X+ #include "HTTCP.h"
  3756. X+ #include "HTAnchor.h"
  3757. X+ #include "HTAtom.h"
  3758. X+ #include "HTWriter.h"
  3759. X+ #include "HTFWriter.h"
  3760. X+ #include "HTInit.h"
  3761. X+ #include "HTSort.h"
  3762. X+ #include "libww.h"
  3763. X+ 
  3764. X+ /* #define TRACE 1 */
  3765. X+ 
  3766. X+ #ifdef USE_DIRENT        /* Set this for Sys V systems */
  3767. X+ #define STRUCT_DIRENT struct dirent
  3768. X+ #else
  3769. X+ #define STRUCT_DIRENT struct direct
  3770. X+ #endif
  3771. X+ 
  3772. X+ #include "HTML.h"        /* For directory object building */
  3773. X+ 
  3774. X+ /*                   Controlling globals
  3775. X+ **
  3776. X+ */
  3777. X+ 
  3778. X+ extern int HTDirAccess;
  3779. X+ 
  3780. X+ /*    Load a document on WWFS
  3781. X+ **    -----------------------
  3782. X+ **
  3783. X+ ** On entry,
  3784. X+ **    addr        must point to the fully qualified hypertext reference.
  3785. X+ **            This is the physsical address of the file
  3786. X+ **
  3787. X+ ** On exit,
  3788. X+ **    returns        <0        Error has occured.
  3789. X+ **            HTLOADED    OK 
  3790. X+ **
  3791. X+ */
  3792. X+ PUBLIC int HTLoadWWFS ARGS4 (
  3793. X+     CONST char *,        addr,
  3794. X+     HTParentAnchor *,    anchor,
  3795. X+     HTFormat,        format_out,
  3796. X+     HTStream *,        sink
  3797. X+ )
  3798. X+ {
  3799. X+     char * filename, * localname;
  3800. X+     HTFormat format;
  3801. X+     int fd = -1;        /* Unix file descriptor number = INVALID */
  3802. X+     char * newname=0;    /* Simplified name of file */
  3803. X+     HTAtom * encoding;    /* @@ not used yet */
  3804. X+     int compressed;
  3805. X+     extern char *HTgeticonname(HTFormat, char *);
  3806. X+     
  3807. X+ /*    Reduce the filename to a basic form (hopefully unique!)
  3808. X+ */
  3809. X+     StrAllocCopy(newname, addr);
  3810. X+     filename=HTParse(newname, "", PARSE_PATH|PARSE_PUNCTUATION);
  3811. X+     free(newname);
  3812. X+     
  3813. X+     format = HTFileFormat(filename, &encoding, WWW_PLAINTEXT, &compressed);
  3814. X+ 
  3815. X+     HTProgress ("Retrieving WWFS file.");
  3816. X+     if (ww_get(filename) < 0) {
  3817. X+         if (TRACE) fprintf(stderr, "HTWWFS: could not retrieve document");
  3818. X+     }
  3819. X+     localname = ww_localpath(filename);
  3820. X+     if (! localname) {
  3821. X+         if (TRACE) fprintf(stderr, "HTWWFS: client not configured properly");
  3822. X+     } else {
  3823. X+     struct stat dir_info;
  3824. X+     localname = strdup(localname);
  3825. X+ 
  3826. X+ #ifdef GOT_READ_DIR
  3827. X+ 
  3828. X+ /*              Multiformat handling
  3829. X+ **
  3830. X+ **    If needed, scan directory to find a good file.
  3831. X+ **  Bug:  we don't stat the file to find the length
  3832. X+ */
  3833. X+     if ( (strlen(localname) > strlen(MULTI_SUFFIX))
  3834. X+        && (0==strcmp(localname + strlen(localname) - strlen(MULTI_SUFFIX),
  3835. X+                       MULTI_SUFFIX))) {
  3836. X+         DIR *dp;
  3837. X+ 
  3838. X+         STRUCT_DIRENT * dirbuf;
  3839. X+         float best = NO_VALUE_FOUND;    /* So far best is bad */
  3840. X+         HTFormat best_rep = NULL;    /* Set when rep found */
  3841. X+         STRUCT_DIRENT best_dirbuf;    /* Best dir entry so far */
  3842. X+ 
  3843. X+         char * base = strrchr(localname, '/');
  3844. X+         int baselen;
  3845. X+ 
  3846. X+         if (!base || base == localname) goto forget_multi;
  3847. X+         *base++ = 0;        /* Just got directory name */
  3848. X+         baselen = strlen(base)- strlen(MULTI_SUFFIX);
  3849. X+         base[baselen] = 0;    /* Chop off suffix */
  3850. X+ 
  3851. X+         dp = opendir(localname);
  3852. X+         if (!dp) {
  3853. X+ forget_multi:
  3854. X+         free(localname);
  3855. X+         return HTLoadError(sink, 500,
  3856. X+             "Multiformat: directory scan failed.");
  3857. X+         }
  3858. X+         
  3859. X+         while (dirbuf = readdir(dp)) {
  3860. X+             /* while there are directory entries to be read */
  3861. X+         if (dirbuf->d_ino == 0) continue;
  3862. X+                 /* if the entry is not being used, skip it */
  3863. X+         
  3864. X+         if (!strncmp(dirbuf->d_name, base, baselen)) {    
  3865. X+             HTFormat rep = HTFileFormat(dirbuf->d_name, &encoding,
  3866. X+                                                 WWW_PLAINTEXT, &compressed);
  3867. X+             float value = HTStackValue(rep, format_out,
  3868. X+                             HTFileValue(dirbuf->d_name),
  3869. X+                         0.0  /* @@@@@@ */);
  3870. X+             if (value != NO_VALUE_FOUND) {
  3871. X+                 if (TRACE) fprintf(stderr,
  3872. X+                 "HTWWFS: value of presenting %s is %f\n",
  3873. X+                 HTAtom_name(rep), value);
  3874. X+             if  (value > best) {
  3875. X+                 best_rep = rep;
  3876. X+                 best = value;
  3877. X+                 best_dirbuf = *dirbuf;
  3878. X+                }
  3879. X+             }    /* if best so far */             
  3880. X+          } /* if match */  
  3881. X+             
  3882. X+         } /* end while directory entries left to read */
  3883. X+         closedir(dp);
  3884. X+         
  3885. X+         if (best_rep) {
  3886. X+         format = best_rep;
  3887. X+         base[-1] = '/';        /* Restore directory name */
  3888. X+         base[0] = 0;
  3889. X+         StrAllocCat(localname, best_dirbuf.d_name);
  3890. X+         goto open_file;
  3891. X+         
  3892. X+         } else {             /* If not found suitable file */
  3893. X+         free(localname);
  3894. X+         return HTLoadError(sink, 403,    /* List formats? */
  3895. X+            "Could not find suitable representation for transmission.");
  3896. X+         }
  3897. X+         /*NOTREACHED*/
  3898. X+     } /* if multi suffix */
  3899. X+ /*
  3900. X+ **    Check to see if the 'localname' is in fact a directory.  If it is
  3901. X+ **    create a new hypertext object containing a list of files and 
  3902. X+ **    subdirectories contained in the directory.  All of these are links
  3903. X+ **      to the directories or files listed.
  3904. X+ **      NB This assumes the existance of a type 'STRUCT_DIRENT', which will
  3905. X+ **      hold the directory entry, and a type 'DIR' which is used to point to
  3906. X+ **      the current directory being read.
  3907. X+ */
  3908. X+     
  3909. X+     
  3910. X+     if (stat(localname,&dir_info) == -1) {     /* get file information */
  3911. X+                                    /* if can't read file information */
  3912. X+         if (TRACE) fprintf(stderr, "HTWWFS: can't stat %s\n", localname);
  3913. X+ 
  3914. X+     }  else {        /* Stat was OK */
  3915. X+         
  3916. X+ 
  3917. X+         if (((dir_info.st_mode) & S_IFMT) == S_IFDIR) {
  3918. X+         /* if localname is a directory */    
  3919. X+ 
  3920. X+ /*
  3921. X+ **
  3922. X+ ** Read the localdirectory and present a nicely formatted list to the user
  3923. X+ ** Re-wrote most of the read directory code here, excepting for the checking
  3924. X+ ** access.
  3925. X+ **
  3926. X+ ** Author: Charles Henrich (henrich@crh.cl.msu.edu)   10-09-93
  3927. X+ **
  3928. X+ ** This is still pretty messy, need to go through and clean it up at some point
  3929. X+ **
  3930. X+ */
  3931. X+ 
  3932. X+ /* Define some parameters that everyone should already have */
  3933. X+ 
  3934. X+ #ifndef MAXPATHLEN
  3935. X+ #define MAXPATHLEN 1024
  3936. X+ #endif
  3937. X+ 
  3938. X+ #ifndef BUFSIZ
  3939. X+ #define BUFSIZ 4096
  3940. X+ #endif
  3941. X+ 
  3942. X+                 char filepath[MAXPATHLEN];
  3943. X+                 char buffer[4096];
  3944. X+      
  3945. X+                 char *ptr;
  3946. X+                 char *dataptr;
  3947. X+ 
  3948. X+                 HText * HT;
  3949. X+                 HTFormat format;
  3950. X+                 HTAtom *pencoding;
  3951. X+ 
  3952. X+         struct stat statbuf;
  3953. X+         STRUCT_DIRENT * dp;
  3954. X+         DIR *dfp;
  3955. X+  
  3956. X+                 int cmpr;
  3957. X+                 int count;
  3958. X+ 
  3959. X+         if (TRACE)
  3960. X+             fprintf(stderr,"%s is a directory\n",localname);
  3961. X+         HTProgress ("Listing directory.");
  3962. X+             
  3963. X+ /*    Check directory access.
  3964. X+ **    Selective access means only those directories containing a
  3965. X+ **    marker file can be browsed
  3966. X+ */
  3967. X+         if (HTDirAccess == HT_DIR_FORBID) {
  3968. X+             free(localname);
  3969. X+             return HTLoadError(sink, 403,
  3970. X+             "Directory browsing is not allowed.");
  3971. X+         }
  3972. X+ 
  3973. X+ 
  3974. X+         if (HTDirAccess == HT_DIR_SELECTIVE) {
  3975. X+             char * enable_file_name = 
  3976. X+             malloc(strlen(localname)+ 1 +
  3977. X+              strlen(HT_DIR_ENABLE_FILE) + 1);
  3978. X+             strcpy(enable_file_name, localname);
  3979. X+             strcat(enable_file_name, "/");
  3980. X+             strcat(enable_file_name, HT_DIR_ENABLE_FILE);
  3981. X+             if (stat(enable_file_name, &statbuf) != 0) {
  3982. X+             free(localname);
  3983. X+             return HTLoadError(sink, 403,
  3984. X+             "Selective access is not enabled for this directory.");
  3985. X+             }
  3986. X+         }
  3987. X+ 
  3988. X+  
  3989. X+         dfp = opendir(localname);
  3990. X+         if (!dfp) {
  3991. X+             free(localname);
  3992. X+             return HTLoadError(sink, 403, "This directory is not readable.");
  3993. X+         }
  3994. X+ 
  3995. X+ /* Suck the directory up into a list to be sorted */
  3996. X+ 
  3997. X+                 HTSortInit();
  3998. X+ 
  3999. X+                 for(dp=readdir(dfp);dp != NULL;dp=readdir(dfp))
  4000. X+                     {
  4001. X+                     ptr = malloc(strlen(dp->d_name)+1);
  4002. X+                     if(ptr == NULL)
  4003. X+                         {
  4004. X+                 return HTLoadError(sink, 403, "Ran out of memory in directory read!");
  4005. X+                         }
  4006. X+                     strcpy(ptr,dp->d_name);
  4007. X+                      
  4008. X+                     HTSortAdd(ptr);
  4009. X+                     }
  4010. X+ 
  4011. X+                 closedir(dfp);
  4012. X+ 
  4013. X+ /* Sort the dir list */
  4014. X+ 
  4015. X+                 HTSortSort();
  4016. X+ 
  4017. X+ /* Start a new HTML page */
  4018. X+ 
  4019. X+                 HT = HText_new();
  4020. X+                 HText_beginAppend(HT);
  4021. X+                 HText_appendText(HT, "<H1>WWFS Directory ");
  4022. X+                 HText_appendText(HT, filename);
  4023. X+                 HText_appendText(HT, "</H1>\n");
  4024. X+                 HText_appendText(HT,"<DL>\n"); 
  4025. X+ 
  4026. X+ /* Sort the list and then spit it out in a nice form */
  4027. X+ 
  4028. X+ /* How this for a disgusting loop :) */
  4029. X+ 
  4030. X+                 for(count=0,dataptr=HTSortFetch(count); 
  4031. X+                     dataptr != NULL; 
  4032. X+                     free(dataptr), count++, dataptr=HTSortFetch(count))
  4033. X+                     {
  4034. X+ 
  4035. X+ /* We dont want to see . */
  4036. X+ 
  4037. X+                     if(strcmp(dataptr,".") == 0) continue;
  4038. X+  
  4039. X+ /* If its .. *and* the current directory is / dont show anything, otherwise
  4040. X+ /* print out a nice Parent Directory entry.
  4041. X+ /* */
  4042. X+ 
  4043. X+                     if(strcmp(dataptr,"..") == 0)
  4044. X+                         {
  4045. X+                         if(strcmp(localname,"/") != 0)
  4046. X+                             {
  4047. X+                             strcpy(buffer,filename);
  4048. X+ 
  4049. X+                             ptr = strrchr(buffer, '/');
  4050. X+ 
  4051. X+                             if(ptr != NULL) *ptr='\0'; 
  4052. X+ 
  4053. X+                             if(buffer[0] == '\0') strcpy(buffer,"/");
  4054. X+ 
  4055. X+                             HText_appendText(HT,"<DD><A HREF=\"");
  4056. X+                             HText_appendText(HT, buffer);
  4057. X+ 
  4058. X+                             HText_appendText(HT,"\"><IMG SRC=\"");
  4059. X+                             HText_appendText(HT, HTgeticonname(NULL, "directory"));
  4060. X+ 
  4061. X+                             HText_appendText(HT,"\"> Parent Directory</a>");
  4062. X+                             continue;
  4063. X+                             }
  4064. X+                         else
  4065. X+                             {
  4066. X+                             continue;
  4067. X+                             }
  4068. X+                         }
  4069. X+                       
  4070. X+ /* Get the filesize information from a stat, if we cant stat it, we probably */
  4071. X+ /* cant read it either, so ignore it. */
  4072. X+ 
  4073. X+                     sprintf(filepath,"%s/%s",localname, dataptr);
  4074. X+ 
  4075. X+                     if(stat(filepath, &statbuf) == -1) continue;
  4076. X+      
  4077. X+                     HText_appendText(HT,"<DD><A HREF=\"");
  4078. X+                     HText_appendText (HT, filename);
  4079. X+ 
  4080. X+                     if(localname[strlen(localname)-1] != '/') 
  4081. X+                         {
  4082. X+                         HText_appendText (HT, "/");
  4083. X+                         }
  4084. X+ 
  4085. X+                     HText_appendText (HT, dataptr);
  4086. X+                     HText_appendText (HT, "\">");
  4087. X+ 
  4088. X+ /* If its a directory, dump out a dir icon, dont bother with anything else */
  4089. X+ /* if it is a file try and figure out what type of file it is, and grab    */
  4090. X+ /* the appropriate icon.  If we cant figure it out, call it text.  If its  */
  4091. X+ /* a compressed file, call it binary no matter what                        */
  4092. X+ 
  4093. X+                     if(statbuf.st_mode & S_IFDIR)
  4094. X+                         {
  4095. X+                         sprintf(buffer,"%s",dataptr);
  4096. X+                         HText_appendText(HT, "<IMG SRC=\"");
  4097. X+                         HText_appendText(HT, HTgeticonname(NULL, "directory"));
  4098. X+                         HText_appendText(HT, "\"> ");
  4099. X+                         }
  4100. X+                     else
  4101. X+                         {
  4102. X+                         sprintf(buffer,"%s (%d bytes)", 
  4103. X+                             dataptr, statbuf.st_size);
  4104. X+               
  4105. X+                         format = HTFileFormat(dataptr, &pencoding, 
  4106. X+                                      WWW_SOURCE, &cmpr);
  4107. X+ 
  4108. X+ /* If its executable then call it application, else it might as well be text */
  4109. X+ 
  4110. X+                         if(cmpr == 0)
  4111. X+                             {
  4112. X+                             HText_appendText(HT, "<IMG SRC=\"");
  4113. X+                             if((statbuf.st_mode & S_IXUSR) ||
  4114. X+                                (statbuf.st_mode & S_IXGRP) || 
  4115. X+                                (statbuf.st_mode & S_IXOTH))
  4116. X+                                 {
  4117. X+                                 HText_appendText(HT, 
  4118. X+                                     HTgeticonname(format, "application"));
  4119. X+                                 }
  4120. X+                             else
  4121. X+                                 {
  4122. X+                                 HText_appendText(HT, 
  4123. X+                                     HTgeticonname(format, "text"));
  4124. X+                                 }
  4125. X+                             HText_appendText(HT, "\"> ");
  4126. X+                             }
  4127. X+                         else
  4128. X+                             {
  4129. X+                             HText_appendText(HT, "<IMG SRC=\"");
  4130. X+                             HText_appendText(HT, HTgeticonname(NULL, "application"));
  4131. X+                             HText_appendText(HT, "\"> ");
  4132. X+                             }
  4133. X+                         }
  4134. X+ 
  4135. X+ /* Spit out the anchor */
  4136. X+ 
  4137. X+                     HText_appendText (HT, buffer);
  4138. X+                     HText_appendText (HT, "</A>\n");
  4139. X+                     } 
  4140. X+ 
  4141. X+ /* End of list, clean up and we are done */
  4142. X+ 
  4143. X+             HText_appendText (HT, "</DL>\n");
  4144. X+             HText_endAppend (HT);
  4145. X+             free(localname);
  4146. X+             return HT_LOADED;
  4147. X+         } /* end if localname is directory */
  4148. X+     
  4149. X+     } /* end if file stat worked */
  4150. X+     
  4151. X+ /* End of directory reading section
  4152. X+ */
  4153. X+ #endif
  4154. X+ open_file:
  4155. X+     {
  4156. X+         FILE * fp = fopen(localname,"r");
  4157. X+         if(TRACE) fprintf (stderr, "HTWWFS: Opening `%s' gives %p\n",
  4158. X+                 localname, (void*)fp);
  4159. X+         if (fp) {        /* Good! */
  4160. X+         if (HTEditable(localname)) {
  4161. X+             HTAtom * put = HTAtom_for("PUT");
  4162. X+             HTList * methods = HTAnchor_methods(anchor);
  4163. X+             if (HTList_indexOf(methods, put) == (-1)) {
  4164. X+             HTList_addObject(methods, put);
  4165. X+             }
  4166. X+         }
  4167. X+         free(localname);
  4168. X+         HTParseFile(format, format_out, anchor, fp, sink);
  4169. X+         fclose(fp);
  4170. X+         return HT_LOADED;
  4171. X+         }  /* If succesfull open */
  4172. X+     }    /* scope of fp */
  4173. X+     }  /* local unix file system */    
  4174. X+     free(filename);
  4175. X+ }
  4176. X+ 
  4177. X+ /*        Protocol descriptors
  4178. X+ */
  4179. X+ PUBLIC HTProtocol HTWWFS = { "wwfs", HTLoadWWFS, 0 };
  4180. Xdiff -c -r -N Mosaic-2.0/libwww2/Makefile Mosaic-2.0+wwfs/libwww2/Makefile
  4181. X*** Mosaic-2.0/libwww2/Makefile    Mon Nov  1 13:04:46 1993
  4182. X--- Mosaic-2.0+wwfs/libwww2/Makefile    Tue Nov 16 04:32:17 1993
  4183. X***************
  4184. X*** 30,35 ****
  4185. X--- 30,36 ----
  4186. X  HTTelnet.c \
  4187. X  HTWSRC.c \
  4188. X  HTWriter.c \
  4189. X+ HTWWFS.c \
  4190. X  SGML.c \
  4191. X  HTWAIS.c \
  4192. X  HTIcon.c \
  4193. Xdiff -c -r -N Mosaic-2.0/src/Makefile Mosaic-2.0+wwfs/src/Makefile
  4194. X*** Mosaic-2.0/src/Makefile    Sun Nov  7 16:32:05 1993
  4195. X--- Mosaic-2.0+wwfs/src/Makefile    Tue Nov 16 04:43:11 1993
  4196. X***************
  4197. X*** 5,11 ****
  4198. X  LIBXMX_INC = ../libXmx
  4199. X  
  4200. X  PROGRAM_LIBS = $(LIBWWW_DIR)/libwww.a $(LIBHTMLW_DIR)/libhtmlw.a $(LIBXMX_DIR)/libXmx.a
  4201. X! LIBS = $(PROGRAM_LIBS) $(X_LIBS) $(DTM_LIBS) $(HDF_LIBS) $(WAIS_LIBS) $(MATH_LIB) $(SYS_LIBS)
  4202. X  
  4203. X  CFILES = main.c gui.c gui-dialogs.c gui-menubar.c gui-documents.c mo-www.c\
  4204. X    mo-dtm.c hotlist.c whine.c history.c\
  4205. X--- 5,11 ----
  4206. X  LIBXMX_INC = ../libXmx
  4207. X  
  4208. X  PROGRAM_LIBS = $(LIBWWW_DIR)/libwww.a $(LIBHTMLW_DIR)/libhtmlw.a $(LIBXMX_DIR)/libXmx.a
  4209. X! LIBS = $(PROGRAM_LIBS) $(X_LIBS) $(DTM_LIBS) $(HDF_LIBS) $(WAIS_LIBS) $(WWFS_LIBS) $(MATH_LIB) $(SYS_LIBS)
  4210. X  
  4211. X  CFILES = main.c gui.c gui-dialogs.c gui-menubar.c gui-documents.c mo-www.c\
  4212. X    mo-dtm.c hotlist.c whine.c history.c\
  4213. Xdiff -c -r -N Mosaic-2.0/src/history.c Mosaic-2.0+wwfs/src/history.c
  4214. X*** Mosaic-2.0/src/history.c    Fri Nov  5 18:14:31 1993
  4215. X--- Mosaic-2.0+wwfs/src/history.c    Tue Nov 16 04:38:53 1993
  4216. X***************
  4217. X*** 349,354 ****
  4218. X--- 349,365 ----
  4219. X          goto done;
  4220. X        }
  4221. X      }
  4222. X+ 
  4223. X+   if (!strncmp (url, "wwfs:", 5))
  4224. X+     {
  4225. X+           /* It's a WWFS file. */
  4226. X+           foo1 = url + 5;
  4227. X+           
  4228. X+           title = (char *)malloc ((strlen (foo1) + 32) * sizeof (char));
  4229. X+           sprintf (title, "WWFS file %s\0", foo1);
  4230. X+           
  4231. X+           goto done;
  4232. X+     }
  4233. X    
  4234. X    /* Punt... */
  4235. X    title = (char *) malloc ((strlen (url) + 24) * sizeof (char));
  4236. Xdiff -c -r -N Mosaic-2.0/src/mo-www.c Mosaic-2.0+wwfs/src/mo-www.c
  4237. X*** Mosaic-2.0/src/mo-www.c    Sun Nov  7 13:41:29 1993
  4238. X--- Mosaic-2.0+wwfs/src/mo-www.c    Tue Nov 16 04:39:56 1993
  4239. X***************
  4240. X*** 774,780 ****
  4241. X  /* ------------------------------ dumb stuff ------------------------------ */
  4242. X  
  4243. X  /* Grumble grumble... */
  4244. X! #if defined(ultrix) || defined(VMS) || defined(NeXT) || defined(M4310) || defined(vax)
  4245. X  char *strdup (char *str)
  4246. X  {
  4247. X    char *dup;
  4248. X--- 774,783 ----
  4249. X  /* ------------------------------ dumb stuff ------------------------------ */
  4250. X  
  4251. X  /* Grumble grumble... */
  4252. X! /*
  4253. X!  * #if defined(ultrix) || defined(VMS) || defined(NeXT) || defined(M4310) || defined(vax)
  4254. X!  */
  4255. X! #if defined(VMS) || defined(NeXT) || defined(M4310) || defined(vax)
  4256. X  char *strdup (char *str)
  4257. X  {
  4258. X    char *dup;
  4259. END_OF_FILE
  4260.   if test 31052 -ne `wc -c <'mosaic/Mosaic-2.0+wwfs.diff'`; then
  4261.     echo shar: \"'mosaic/Mosaic-2.0+wwfs.diff'\" unpacked with wrong size!
  4262.   fi
  4263.   # end of 'mosaic/Mosaic-2.0+wwfs.diff'
  4264. fi
  4265. echo shar: End of archive 11 \(of 22\).
  4266. cp /dev/null ark11isdone
  4267. MISSING=""
  4268. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ; do
  4269.     if test ! -f ark${I}isdone ; then
  4270.     MISSING="${MISSING} ${I}"
  4271.     fi
  4272. done
  4273. if test "${MISSING}" = "" ; then
  4274.     echo You have unpacked all 22 archives.
  4275.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  4276. else
  4277.     echo You still must unpack the following archives:
  4278.     echo "        " ${MISSING}
  4279. fi
  4280. exit 0
  4281. exit 0 # Just in case...
  4282.