home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 13 / amigaformatcd13.iso / -in_the_mag- / internet / amitcp-4.0 / help / ch_nfsc (.txt) next >
Amigaguide Document  |  1997-03-11  |  46KB  |  1,031 lines

  1. @database ch_nfsc.guide
  2. @Master ch_nfsc.texi
  3. @Width 72
  4. This is the AmigaGuide file ch_nfsc.guide, produced by Makeinfo-1.48 from 
  5. the input file ch_nfsc.texi.
  6.    This file documents the NFS client `ch_nfsc' for AmiTCP 4.0 and
  7. above.
  8.    Copyright (C) 1993, 1994 Carsten Heyl.
  9.    Permission is granted to make and distribute verbatim copies of this
  10. manual provided the copyright notice and this permission notice are
  11. preserved on all copies.
  12.    Permission is granted to copy and distribute modified versions of
  13. this manual under the conditions for verbatim copying, provided that
  14. the entire resulting derived work is distributed under the terms of a
  15. permission notice identical to this one.
  16.    Permission is granted to copy and distribute translations of this
  17. manual into another language, under the above conditions for modified
  18. versions.
  19. @Node Main "ch_nfsc.guide"
  20. @Next "COPYING"
  21. Preface
  22. *******
  23.    This document describes the NFS client `ch_nfsc' Version 1.04 and
  24. related commands. It gives some general information and describes how
  25. to install and use it.
  26. Some legal stuff. * Read this before use *.
  27.  @{" COPYING " Link "COPYING"}              Copyright stuff.
  28.  @{" DISCLAIMER " Link "DISCLAIMER"}           Use at your own risk.
  29.  @{" Limitations " Link "Limitations"}          Known Bugs, problems and limitations.
  30. In medias res.
  31.  @{" Overview " Link "Overview"}             Introductional information.
  32.  @{" Requirements " Link "Requirements"}         What's required?
  33.  @{" Installation " Link "Installation"}         Short overview about installation.
  34.  @{" ch_nfsmount " Link "ch_nfsmount"}          Usage information about `ch_nfsmount'.
  35.  @{" ch_nfsc " Link "ch_nfsc"}              Information about `ch_nfsc' arguments.
  36.  @{" ch_nfsctl " Link "ch_nfsctl"}            Usage information about `ch_nfsctl'.
  37.  @{" Examples " Link "Examples"}             Some example mounts.
  38.  @{" FAQ " Link "FAQ"}                  Questions and answers.
  39.  @{" Reporting Bugs " Link "Reporting Bugs"}       How to reach the author.
  40.  @{" Implementat. Notes " Link "Implementat. Notes"}   Information about implementation details.
  41.  @{" Thanks " Link "Thanks"}               Many people helped, here's their hall of fame.
  42.  @{" History " Link "History"}              A look back.
  43.  @{" Concept Index " Link "Concept Index"}        Direct way do various concepts.
  44. @EndNode
  45. @Node "COPYING" "ch_nfsc.guide/COPYING"
  46. @Next "DISCLAIMER"
  47. @Prev "Main"
  48. @Toc "Main"
  49. Ch_nfs client
  50. *************
  51. COPYING
  52. =======
  53. The files
  54.      bin/ch_chmod    bin/ch_die      bin/ch_mknod
  55.      bin/ch_nfsc     bin/ch_nfsctl   bin/ch_nfsmount
  56.      bin/ch_setowner
  57.      db/ch_nfstab
  58.      doc/ch_chmod.doc        doc/ch_die.doc
  59.      doc/ch_mknod.doc        doc/ch_setowner.doc
  60.      dvi/ch_nfsc.dvi         dvi/ch_nfsc_a4.dvi
  61.      help/ch_nfsc            help/ch_nfsutil
  62.    Copyright (C) 1993, 1994 Carsten Heyl
  63. All rights reserved.
  64. The files
  65.      doc/showmount.doc
  66.      showmount/showmount.8
  67.      showmount/showmount.c
  68.    are
  69.      Copyright (C) 1993 Rick Sladkey <jrs@world.std.com>
  70.      
  71.      This program is free software; you can redistribute it and/or modify
  72.      it under the terms of the GNU General Public License as published by
  73.      the Free Software Foundation; either version 2, or (at your option)
  74.      any later version.
  75.      
  76.      This program is distributed in the hope that it will be useful,
  77.      but WITHOUT ANY WARRANTY; without even the implied warranty of
  78.      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  79.      GNU General Public License for more details.
  80. You may freely copy this archive as long as it's contents are left
  81. unmodified. This package is freely distributable, but still copyrighted
  82. by Carsten Heyl.
  83.    Permission is granted to include this package in Public-Domain
  84. collections, especially in Fred Fishs Amiga Disk Library (including CD
  85. ROM versions of it). The distribution file may be uploaded to Bulletin
  86. Board Systems or FTP servers. If you want to distribute this program
  87. you *must* use the original distribution archive.
  88.    Permission is granted to the AmiTCP/IP Group, Network Solutions
  89. Development Inc. to distribute the following files of `ch_nfsc' with
  90. `AmiTCP/IP 4.0 demo' and `Commercial AmiTCP/IP 4.0'.
  91.      bin/ch_chmod, bin/ch_die, bin/ch_mknod, bin/ch_nfsc,
  92.      bin/ch_nfsctl, bin/ch_nfsmount, bin/ch_setowner,
  93.      db/ch_nfstab, doc/ch_chmod.doc, doc/ch_die.doc,
  94.      doc/ch_mknod.doc, doc/ch_setowner.doc, dvi/ch_nfsc.dvi,
  95.      dvi/ch_nfsc_a4.dvi, help/ch_nfsutil, help/ch_nfsc
  96. @EndNode
  97. @Node "DISCLAIMER" "ch_nfsc.guide/DISCLAIMER"
  98. @Next "Limitations"
  99. @Prev "COPYING"
  100. @Toc "Main"
  101. Information about warranty
  102. ==========================
  103.      THIS CODE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND,
  104.      EITHER EXPRESSED OR IMPLIED. THE ENTIRE RISK OF USING THIS
  105.      CODE, PROGRAM OR INFORMATION IS ASSUMED BY THE USER. IN NO
  106.      EVENT WILL THE AUTHOR BE LIABLE FOR ANY DAMAGES, DIRECT,
  107.      INDIRECT, INCIDENTIAL, SPECIAL OR CONSEQUENTIAL, RESULTING
  108.      FROM USING THIS CODE, PROGRAM OR INFORMATION, EVEN IF HE
  109.      (THE AUTHOR) HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  110.      DAMAGES.
  111. This program uses code from the Sun RPC 4.0 distribution containing the
  112. following note:
  113.      Sun RPC is a product of Sun Microsystems, Inc. and is provided for
  114.      unrestricted use provided that this legend is included on all tape
  115.      media and as a part of the software program in whole or part.  Users
  116.      may copy or modify Sun RPC without charge, but are not authorized
  117.      to license or distribute it to anyone else except as part of a product or
  118.      program developed by the user.
  119.      
  120.      SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
  121.      WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  122.      PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
  123.      
  124.      Sun RPC is provided with no support and without any obligation on the
  125.      part of Sun Microsystems, Inc. to assist in its use, correction,
  126.      modification or enhancement.
  127.      
  128.      SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
  129.      INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
  130.      OR ANY PART THEREOF.
  131.      
  132.      In no event will Sun Microsystems, Inc. be liable for any lost revenue
  133.      or profits or other special, indirect and consequential damages, even if
  134.      Sun has been advised of the possibility of such damages.
  135.      
  136.      Sun Microsystems, Inc.
  137.      2550 Garcia Avenue
  138.      Mountain View, California  94043
  139. @EndNode
  140. @Node "Limitations" "ch_nfsc.guide/Limitations"
  141. @Next "Overview"
  142. @Prev "DISCLAIMER"
  143. @Toc "Main"
  144. Known limitations, problems and bugs
  145. ====================================
  146. Limitations
  147. -----------
  148.   1. Unix gids/uids > 0xFFFF will be mapped to <nobody> (0) on Amiga.
  149.   2. Filename parsing is a compromise between amiga and unix path usage.
  150.      Examples:
  151.         - `dir1/../dir2' becomes `dir1'
  152.         - `dir1//dir2' becomes `dir1'
  153.         - `dir1//../dir2' becomes `""'
  154.         - `dir1/./dir2' becomes `dir1/dir2'
  155.      This makes using some unix symbolic links possible but may lead to
  156.      confusion if mixed syntax is used.
  157.   3. The following DOS packets (actions) for file handlers are not
  158.      supported by `ch_nfsc':
  159.     `LOCK_RECORD'
  160.     `FREE_RECORD'
  161.           This can't be implemented with NFS alone. Possibly it can be
  162.           implemented using the Lock Manager protocol via RPC. If
  163.           someone is able to submit me any material about this protocol
  164.           I may be able to support these.
  165.     `ADD_NOTIFY'
  166.     `REMOVE_NOTIFY'
  167.           Impossible via NFS if you're not the only user (correct me).
  168.     `SERIALIZE_DISK'
  169.           Of any use for NFS?
  170. Problems
  171. --------
  172.   1. Filename and directory parsing is done without regard to soft
  173.      links. That means `a/b/c/d///' will always give `a/b' even if `c'
  174.      is a symbolic link pointing to another dir or even to file. The
  175.      conversion will be done without even touching `c' or `d'.
  176.   2. Expect confusion when using `.' and `..' as normal filenames on
  177.      the nfs handler.
  178. Known bugs
  179. ----------
  180.   1. As of version 1.02 `ch_nfsc' will not return filenames longer than
  181.      30 characters on Examine() calls so they will be missing if listing
  182.      directories on the NFS volume. This limit may be stretched to 106
  183.      characters using the `LONG_FILENAMES' option. But notice that this
  184.      lead to crashes when using programs which can't deal with
  185.      filenames of that length. One of these programs is the ASL
  186.      Filerequester. There is currently no way to access or even list
  187.      files with filename lengths exceeding 106 characters. I plan to
  188.      remove that limitation in the future by mapping long filenames to
  189.      unique and shorter ones but don't expect that in the near future.
  190.   2. As of version 1.02 `ch_nfsc' is able to use the credentials (uid,
  191.      gid(s), umask) of the current user as set e.g. using the `login'
  192.      utility of `AmiTCP'. Due to internal cache related restrictions of
  193.      `ch_nfsc' a new user may be able to view filenames and file
  194.      permissions of files he shouldn't have access to. He may be able
  195.      to list the file's permission but he won't be able to access the
  196.      file's contents.
  197. For related information, see @{"Implementat. Notes" Link "Implementat. Notes"}.
  198. @EndNode
  199. @Node "Overview" "ch_nfsc.guide/Overview"
  200. @Next "Requirements"
  201. @Prev "Limitations"
  202. @Toc "Main"
  203. General introductional information
  204. ==================================
  205.    This is a NFS client implementing NFS Version 2. You should be able
  206. to remote mount any partition exported by a Version 2 NFS server.
  207. `AmiTCP' >= 3.0 is required to run this software.
  208.    This program or a previous version has been run on various kinds of
  209. machines ranging from A500, A1000, A2000, A3000 to A4000.
  210.    The main machines to test were:
  211.    - Machine/Processor,MHz/OS Version/AmiTCP Version/Link Hardware
  212.    - A3000/68040,35 MHz 68030,16 MHz/2.04/3.0/Clone NE2000 Ethernetcard
  213.      via GoldenGate II bridgecard
  214.    - A3000/68030,25 MHz/2.1/3.0/Clone NE2000 Ethernetcard via Crosslink
  215.      bridgecard
  216.    Tested NFS servers are:
  217.    - Interface(s)/Machine/OS
  218.    - Ethernet/Sparc clone running SunOS 4.1.1 NFS Server
  219.    - CSLIP, 14.4,.../Sun/SunOS 4.1.3 (CD-ROM)
  220.    - CSLIP, 14.4k,.../wuarchive:/archive
  221.    - CSLIP, 14.4k,.../Sun/SunOS
  222.    - Ethernet/386/Linux 0.99.14s
  223.    - Ethernet/Sparc-Station 2/Solaris 2.3
  224.    - ???/PC-Clone/DOS, SOSS 3.2
  225.    - Ethernet/486, 33 MHz/UHC SysV.4
  226.    - Ethernet/486DX2-66/FreeBSD V1.0.2
  227.    - CSLIP V2.6, 14.4k/Sun Sparc 10/SunOS 4.1.3
  228.    - Ethernet/DEC/Ultrix
  229. (If you have problems with a special configuration, please tell, see
  230. @{"Reporting Bugs" Link "Reporting Bugs"}.)
  231. @EndNode
  232. @Node "Requirements" "ch_nfsc.guide/Requirements"
  233. @Next "Installation"
  234. @Prev "Overview"
  235. @Toc "Main"
  236. Requirements
  237. ============
  238. Hardware
  239. --------
  240.    The client should run on any Amiga. A minimum of 300 KBytes should
  241. be available to run a single client. If you plan to use multiple mounts
  242. at once think about making `ch_nfsc' resident, it should be pure.
  243. Around 110K is needed for stack (30000 Bytes) and code (ca. 80 KBytes).
  244. The stack size needed will hopefully be reduced in the future.
  245. Software
  246. --------
  247.    `AmiTCP' >= 3.0 is required.
  248.    The NFS Server you want to mount must support NFS Version 2.0 which
  249. is currently most widely used.
  250. @EndNode
  251. @Node "Installation" "ch_nfsc.guide/Installation"
  252. @Next "ch_nfsmount"
  253. @Prev "Requirements"
  254. @Toc "Main"
  255. Short installation guide
  256. ========================
  257.    To use `ch_nfsc' you have to take the following steps:
  258.   1. Copy the binaries (`ch_nfsc', `ch_nfsmount' , `ch_nfsclnt', ...) 
  259.      to a directory in your path, e.g. `AmiTCP:bin'.
  260.   2. Create a file `AmiTCP:db/ch_nfstab'. This file contains
  261.      information about the NFS volumes to mount, their local names and
  262.      additional options, for all possible options see @{"Parameters" Link "Parameters"}. Each
  263.      line describes a different volume to mount. Lines containing a `#'
  264.      will be ignored from `#' to the end of the line. The general
  265.      structure is
  266.           <hostname>:<remote device> <local device> [<additional options>]
  267.      e.g.
  268.           nfsserver:/usr/users/ch nfs: user ch
  269.      For more examples see @{"Examples" Link "Examples"}.
  270.   3. Use `ch_nfsmount' to actually mount the specified volume,  e.g.
  271.           ch_nfsmount nfs:
  272.      For details see @{"ch_nfsmount" Link "ch_nfsmount"}.
  273. @EndNode
  274. @Node "ch_nfsmount" "ch_nfsc.guide/ch_nfsmount"
  275. @Next "ch_nfsc"
  276. @Prev "Installation"
  277. @Toc "Main"
  278. `ch_nfsmount' usage information
  279. ===============================
  280.    `Ch_nfsmount' is used to actually mount a NFS partition on your
  281. amiga. It needs a file describing the machine to mount from (`host'),
  282. the directory/partition to mount (`remote device') and the name the
  283. partition is locally known as (`local device'. This file is normally
  284. `AmiTCP:db/ch_nfstab' but may be specified on the commandline, for
  285. examples see @{"Examples" Link "Examples"}. The argument template of `ch_nfsmount' is
  286.      DEVICE,ALL/S,LIST/S,VERBOSE/S,FROM/K,OPTIONS/F
  287.    Before you can mount a partition from a remote host, this host must
  288. export the partition. This is usually done with an entry in
  289. `/etc/exports'. If you don't trust this program you may export it read
  290. only.
  291. `DEVICE'
  292.      The device to mount, this is the `local device' as specified in the
  293.      `ch_nfstab' file.
  294. `ALL/S'
  295.      Mount all devices listed in the `ch_nfstab' file.
  296. `LIST/S'
  297.      Do not mount a device but display the contents of the `ch_nfstab'
  298.      file.
  299. `VERBOSE/S'
  300.      Display the actual parameters as given to `ch_nfsc' when mounting
  301.      a volume.
  302. `FROM <alternative `ch_nfstab' file>'
  303.      Use an alternative `ch_nfstab' file.
  304. `OPTIONS/F'
  305.      The rest of the line are legal options of `ch_nfsc' to specify
  306.      e.g. the `UMASK' or `USER'. for details see @{"ch_nfsc" Link "ch_nfsc"}.
  307. @EndNode
  308. @Node "ch_nfsc" "ch_nfsc.guide/ch_nfsc"
  309. @Next "ch_nfsctl"
  310. @Prev "ch_nfsmount"
  311. @Toc "Main"
  312. Information about `ch_nfsc' arguments.
  313. ======================================
  314.    This section describes the arguments which may be given to `ch_nfsc'
  315. via `ch_fstab' or `ch_nfsmount'.
  316.  @{" Parameters " Link "Parameters"}           Parameters overview.
  317.  @{" Common " Link "Common"}               Common command line parameters.
  318.  @{" Less common " Link "Less common"}          Less common command line parameters.
  319.  @{" Special " Link "Special"}              Special command line parameters.
  320.  @{" Tuning " Link "Tuning"}               How to get more speed.
  321.  @{" ARexxPort " Link "ARexxPort"}            The integrated ARexx port.
  322.  @{" Debugging " Link "Debugging"}            How to help locating bugs.
  323. @EndNode
  324. @Node "Parameters" "ch_nfsc.guide/Parameters"
  325. @Next "Common"
  326. @Prev "ch_nfsc"
  327. @Toc "ch_nfsc"
  328. Parameters overview
  329. -------------------
  330.      REMOTE_DEVICE/A   Host to mount from and device to mount.
  331.      LOCAL_DEVICE      Local device name.
  332.      USER/K            Explicit user for NFS requests.
  333.      UMASK             Explicit umask, used when creating files.
  334.      MNT_USER/K        User when mounting the partition.
  335.      MR
  336.      MAX_READSIZE      Maximum number of data bytes used in RPC `read'.
  337.      MD
  338.      MAX_READDIRSIZE   Maximum number of data bytes used in RPC `readdir'.
  339.      MW
  340.      MAX_WRITESIZE     Maximum number of data bytes used in RPC `write'.
  341.      B=BUFFERS         Initial number of 512 Byte buffers, default is 32.
  342.      ACTO
  343.      ATTRCACHE_TIMEOUT Timeout in seconds of cached attributes.
  344.      DCTO
  345.      DIRCACHE_TIMEOUT  Timeout in seconds of cached dir entries.
  346.      RPCTO
  347.      RPC_TIMEOUT       Maximum time to wait for RPC completion.
  348.      NO_TIMEOUTREQ/S   Don't use timeout requester.
  349.      SM/S
  350.      SLOW_MEDIUM/S     Indicate `using a slow transfer medium'.
  351.      ASYNC_RPC/S       Activate experimental asynchronous RPC.
  352.      LONG_FILENAMES/S  Set maximum filename length from 30 to 106 chars.
  353. Debug version parameters
  354. ------------------------
  355.      DEBUG/K/N     Set debug level.
  356.      SERDEBUG/K/N  Set debug level, use serial port.
  357.      PARDEBUG/K/N  Set debug level, use parallel port.
  358. @EndNode
  359. @Node "Common" "ch_nfsc.guide/Common"
  360. @Next "Less Common"
  361. @Prev "Parameters"
  362. @Toc "ch_nfsc"
  363. Common command line parameters
  364. ------------------------------
  365. `REMOTE_DEVICE/A'
  366.      Host and device to mount, template is `<hostname>:<devicename>',
  367.      e.g. `wuarchive.wustl.edu:/archive'
  368.      Algorithm used to split: `<hostname><first ':'><devicename>'
  369.      No further changes are made to these strings, they are used as got
  370.      from the split above.
  371.      (Note: for some servers you may need to use `host:dev:' or
  372.      `host:dev:\'.)
  373. `LOCAL_DEVICE'
  374.      Name the remote partition is locally known as, e.g. "wustl:".
  375. `USER/K'
  376.      Set explicit username used for later NFS requests. Default is the
  377.      user belonging to the task doing the io request (see `login'
  378.      program of `AmiTCP'). The name used must be a valid user listed in
  379.      amitcp:db/passwd.
  380.      (Note: no passwd checking is done, so it's easy to fake a user)
  381. `UMASK/K/N'
  382.      Octal umask used for all NFS requests dealing with file/directory
  383.      creation, this number is octal in standard unix notation. The
  384.      template is 0<user mask><group mask><others mask> where <mask>
  385.      consists of flags for read, write and execute in this order. If
  386.      the corresponding umask bit is set the same file mode bit will be
  387.      reset, e.g.
  388.     `0077'
  389.           Remove read/write/execute permission for group and others.
  390.     `0022'
  391.           Remove write permission for group and others Default is the
  392.      umask belonging to the task doing the io request
  393. `BUFFERS/K/N'
  394.      Initial number of 512 Byte buffers, default is 32. The number of
  395.      buffers may be changed using the command `AddBuffers'.
  396. `NO_TIMEOUTREQ/S'
  397.      Don't use timeout requester when encountering a RPC timeout but
  398.      return an immediate error.
  399. @EndNode
  400. @Node "Less Common" "ch_nfsc.guide/Less Common"
  401. @Next "Special"
  402. @Prev "Common"
  403. @Toc "ch_nfsc"
  404. Less common command line parameters
  405. -----------------------------------
  406. `MNT_USER/K'
  407.      User used when mounting the partition, default in unix notation:
  408.      user root (0), group wheel (0) The name used must be a vaild user
  409.      listed in amitcp:db/passwd.
  410.      (Note: No passwd checking is done, so it's easy to fake a user.)
  411. Debug versions only:
  412. ....................
  413. `DEBUG/N/K'
  414.      Set debug level n, this number controls what information will be
  415.      written to a log file "t:nfsh.log_<Tasknumber>"
  416.         - level 0: write all information
  417.         - level 1: write warnings and errors
  418.         - level 2: write only errors
  419.         - level 3: write no log messages at all default is level 2
  420. `SERDEBUG/K/N'
  421.      Same as `DEBUG' but writes output to serial interface at 9600 baud
  422.      if not caught.
  423. `PARDEBUG/K/N'
  424.      Same as `DEBUG' but writes output to parallel interface.
  425. (Note: Only one of `DEBUG', `SERDEBUG' or `PARDEBUG' may be given on
  426. startup.)
  427. @EndNode
  428. @Node "Special" "ch_nfsc.guide/Special"
  429. @Next "Tuning"
  430. @Prev "Less Common"
  431. @Toc "ch_nfsc"
  432. Special command line parameters (tuning and troubleshooting)
  433. ------------------------------------------------------------
  434. `MR=MAX_READSIZE/K/N'
  435. `MD=MAX_READDIRSIZE/K/N'
  436. `MW=MAX_WRITESIZE/K/N'
  437.      Defaults: 8192 bytes, for information when to use this, see @{"FAQ" Link "FAQ"}.
  438. `ATTRCACHE_TIMEOUT/K/N'
  439.      Maximum time to cache attributes (Default: 30 secs).
  440.      (Note: When mounting readonly devices on slow links (e.g. SLIP)
  441.      you may set this to several minutes.)
  442. `DIRCACHE_TIMEOUT/K/N'
  443.      Maximum time to cache directory structure (Default: 60 secs).
  444.      (Note: When mounting readonly devices on slow links (e.g. SLIP)   
  445.      you may set this to several minutes.)
  446. `SLOW_MEDIUM/S'
  447.      Give the handler a hint that the medium used is a slow one. This
  448.      is currenlty only used to use a different memory distribution
  449.      between various buffers. It does not make much sense to use this
  450.      Option alone. It should be accompanied with one of the 2 above.
  451. `RPC_TIMEOUT/K/N'
  452.      Maximum time that must be passed before an RPC call is considered
  453.      as "timed out" (default: 25 seconds).
  454.      (Note: Within this time the RPC call is retried every 
  455.      RPC_TIMEOUT/5 seconds, on slow links (e.g. SLIP) you may set this
  456.      to a higher value to reduce unnecessary retries.)
  457. `ASYNC_RPC/S'
  458.      Activate experimental asynchronous RPC code. This should give some
  459.      speed on some configurations, this will only have impact on reads
  460.      or writes.
  461. `LONG_FILENAMES/S'
  462.      Set the maximum filename length of filenames returned by Examine()
  463.      from 30 to 106 chars. This may cause problems on some programs,
  464.      see see @{"Limitations" Link "Limitations"}.
  465. @EndNode
  466. @Node "Tuning" "ch_nfsc.guide/Tuning"
  467. @Next "ARexxPort"
  468. @Prev "Special"
  469. @Toc "ch_nfsc"
  470. How to improve speed
  471. --------------------
  472.    When designing the NFS Client I had fast links in mind (ethernet,
  473. ...) but a high degree of people seem to try to use it on slow links
  474. like SLIP on direct links and even over modems.
  475. Directory walks and listings may be very slow on these configurations.
  476. To get faster response time for successive directory accesses you may
  477. try to increase `ATTRCACHE_TIMEOUT' and `DIRCACHE_TIMEOUT' and activate
  478. `SLOW_MEDIUM'. They default to 30 resp. 60 seconds which may not be
  479. sufficient for modem links see @{"Special" Link "Special"} :-) To increase cache size use
  480. `addbuffers'.
  481.    Currently the only way to flush these caches is to reduce cache
  482. memory via `addbuffers'. Beware that you may get old information when
  483. setting these values too high and other NFS Clients change
  484. files/directories on the same server you use or you may run low on
  485. memory!
  486.    If you mount a read-only volume (e.g. a CD-ROM) it should be possible
  487. to set these values to several minutes without problems. They may be
  488. set on startup of `ch_nfsc', see @{"Special" Link "Special"}, or via `ch_nfsctl'.
  489.    Another way one can try to improve read/write speed by using
  490. asynchronous RPC which may be enabled with ASYNC_RPC on startup of
  491. `ch_nfsc', see @{"Special" Link "Special"}, or via `ch_nfsctl'.
  492.    Please tell me about your experiences! see @{"Reporting Bugs" Link "Reporting Bugs"}.
  493. @EndNode
  494. @Node "ARexxPort" "ch_nfsc.guide/ARexxPort"
  495. @Next "Debugging"
  496. @Prev "Tuning"
  497. @Toc "ch_nfsc"
  498. The integrated ARexx port.
  499. --------------------------
  500.    `Ch_nfsc' has an integrated ARexx port which may be used to set or
  501. query miscellaneous parameters. The port name is `CH_NFSC' followed by
  502. an unique number. All commands have the form `SET <something> <value>'
  503. or `GET <something>'. The command `GET COMMANDS' may be used to get a
  504. list of all commands and whether they support get or set. For examples
  505. see source code of `ch_nfsctl.rexx'.
  506. @EndNode
  507. @Node "Debugging" "ch_nfsc.guide/Debugging"
  508. @Prev "ARexxPort"
  509. @Toc "ch_nfsc"
  510. How to help locating bugs
  511. -------------------------
  512. `Ch_nfsc' is able to log all its actions into a file
  513. `t:nfsh.log_<tasknumber>'.
  514.    This behaviour will be activated by one of the following:
  515.    - supplying `DEBUG 0' on the commandline when starting              
  516.        `ch_nfsc'
  517.    - running `ch_nfsctl device: set_debug 0' from the CLI
  518. This will make all device accesses slow because a huge amount of data
  519. will be written to the log file.
  520.    Repeat your actions to reproduce the bug and make a copy of the log
  521. file after that. If you want to access the log file you need to shut
  522. off debugging so that `ch_nfsc' closes the log file. This can be done
  523.              ch_nfsctl device: set_debug 3
  524.    After that you will be able to access the log file in t:.
  525.    (For alternatives See @{"ch_nfsctl" Link "ch_nfsctl"}.)
  526. @EndNode
  527. @Node "ch_nfsctl" "ch_nfsc.guide/ch_nfsctl"
  528. @Next "Examples"
  529. @Prev "ch_nfsc"
  530. @Toc "Main"
  531. `ch_nfsctl' usage information
  532. =============================
  533.    `Ch_nfsctl' is used to set/query various parameters of a running NFS
  534. client `ch_nfsc'. Since Version 0.007 it is an ARexx script. The
  535. communication is done via ARexx with port CH_NFSC<number>.
  536. The usage template in general is:
  537.              ch_nfsctl <devicename> <arguments>
  538.    Currently supported commands: (Run `ch_nfsctl' without arguments for
  539. usage message.)
  540. `GET_ALL'
  541.      Display all actual settings.
  542. `DIE'
  543.      Preliminary support for removing the handler from memory. The
  544.      handler will refuse to remove itself from memory if open locks or
  545.      file handles exist. In this case you will get a `object in use'
  546.      error.
  547.      *Warning: It's possible to crash your machine with this command.*
  548. `FLUSH_DEBUG'
  549.      This command will force the handler to flush all buffered debug
  550.      data to the log file.
  551. `SET_DEBUG <debug level>'
  552.      Set new debug level, controls what to write into log file,
  553.      possible values are
  554.         - level 0: write all information
  555.         - level 1: write warnings and errors
  556.         - level 2: write only errors
  557.         - level 3: write no log messages at all
  558. `GET_DEBUG'
  559.      Display current debug level.
  560. `SET_UMASK <new octal umask>'
  561.      Set umask to new value, e.g. `SET_UMASK 007' (for description of
  562.      format see unix book or see @{"ch_nfsc" Link "ch_nfsc"}).
  563. `GET_UMASK'
  564.      Get current setting of umask.
  565. `SET_USER'
  566.      Set effective user for NFS accesses to new value, e.g. `SET_USER
  567.      root'.
  568.      (Note: No password checking is done, so it's easy to fake a user.)
  569. `GET_USER'
  570.      Get information about current effective user for NFS accesses.
  571. `SET_MAX_READSIZE'
  572. `SET_MR'
  573. `GET_MAX_READSIZE'
  574. `GET_MR'
  575.      Set/get maximum number of bytes requested from the NFS server in
  576.      one `read' call. Possible values are from 256 to 8192, the default
  577.      value is 8192.
  578. `SET_MAX_READDIRSIZE'
  579. `SET_MD'
  580. `GET_MAX_READDIRSIZE'
  581. `GET_MD'
  582.      Set/get maximum number of bytes requested from the NFS server in
  583.      one `readdir' call. Possible values are from 256 to 8192, the
  584.      default value is 8192.
  585. `SET_MAX_WRITESIZE'
  586. `SET_MW'
  587. `GET_MAX_WRITESIZE'
  588. `GET_MW'
  589.      Set/get maximum number of bytes written to the NFS server in one
  590.      `write' call. Possible values are from 256 to 8192, the default
  591.      value is 8192.
  592. `SET_WRITEBUFFERLIMIT'
  593. `SET_WL'
  594. `GET_WRITEBUFFERLIMIT'
  595. `GET_WL'
  596.      `ch_nfsc' internally buffers data written to the handler (delayed
  597.      write). This options sets/gets the maximum number of bytes of a
  598.      single Write() getting buffered. Blocks longer than this number
  599.      will never get buffered. Set this to 0 to disable write buffer.
  600. `SET_ATTRCACHE_TIMEOUT'
  601. `SET_ACTO'
  602. `GET_ATTRCACHE_TIMEOUT'
  603. `GET_ACTO'
  604.      Set/get maximum time in seconds a cached attribute will remain
  605.      valid. The default value is 30 seconds.
  606. `SET_DIRCACHE_TIMEOUT'
  607. `SET_DCTO'
  608. `GET_DIRCACHE_TIMEOUT'
  609. `GET_DCTO'
  610.      Set/get maximum time in seconds a cached directory entry will
  611.      remain valid. The default value is 60 seconds.
  612. `SET_RPC_TIMEOUT'
  613. `SET_RPCTO'
  614. `GET_RPC_TIMEOUT'
  615. `GET_RPCTO'
  616.      Set/get maximum time in seconds that must be passed before a RPC
  617.      call is considered as "timed out", The default value is 25 seconds.
  618.      (On slow links (e.g. SLIP) you may set this to a higher value to
  619.      reduce unnecessary timeouts and retries.)
  620.      (Note: Within this time the RPC call is retried every
  621.      RPC_TIMEOUT/5 seconds.)
  622. `SET_TIMEOUTREQ <0 or 1>'
  623. `SET_TR <0 or 1>'
  624. `GET_TIMEOUTREQ'
  625. `GET_TR'
  626.      Disable/enable timeout requester flag resp. query current setting.
  627. `SET_SLOW_MEDIUM <0 or 1>'
  628. `SET_SM <0 or 1>'
  629. `GET_SLOW_MEDIUM'
  630. `GET_SM'
  631.      Disable/enable slow medium flag resp. query current setting.
  632. `SET_ASYNC_RPC <0 or 1>'
  633. `SET_ARPC <0 or 1>'
  634. `GET_ASYNC_RPC'
  635. `GET_ARPC'
  636.      Disable/enable asynchronous RPC resp. query current setting.
  637. Examples
  638. --------
  639.   1. Change the effective user for NFS accesses to user `ftp', the NFS
  640.      partition is mounted as `NFS:'.
  641.                   ch_nfsctl NFS: set_user ftp
  642.   2. Query all settings.
  643.                   ch_nfsctl NFS: get_all
  644. @EndNode
  645. @Node "Examples" "ch_nfsc.guide/Examples"
  646. @Next "FAQ"
  647. @Prev "ch_nfsctl"
  648. @Toc "Main"
  649. Some examples
  650. =============
  651.    Example `AmiTCP:db/ch_nfstab' file:
  652.      #
  653.      # REMOTE DEVICE, LOCAL DEVICE, OPTIONS/F
  654.      #
  655.      
  656.      wuarchive.wustl.edu:/archive    wustl:
  657.      work-machine:/home              nfs-home: USER ch UMASK 0027
  658.      # Note: We assume that the archive below is read only.
  659.      wuarchive.wustl.edu:/archive    wustl-arc: ATTRCACHE_TIMEOUT 600 \
  660.              DIRCACHE_TIMEOUT 600
  661.    (Note: The `\' above indicates that the full entry must be written
  662. in a single line.)
  663. Example 1
  664. ---------
  665.    Mount the directory `/archive' of host "wuarchive.wustl.edu" as local
  666. partition "wustl:".
  667.      ch_nfsmount wustl:
  668. Example 2
  669. ---------
  670.    Mount the directory `/home' of host "work-machine" as local partition
  671. "nfs-home:".
  672.    Do all NFS accesses (reading/writing/creating) as user `ch' using
  673. the group specified for `ch' in the amitcp `passwd' file.
  674. Members of the same group as `ch' should be able to read or execute but
  675. not write the files we create but others should not get anything.
  676.              ch_nfsmount nfs-home:
  677. Example 3
  678. ---------
  679.    Do the same as Example 1 above but here we assume that the archive
  680. is read only so that raising cache timeouts will not harm.
  681.              ch_nfsmount wustl-arc:
  682. Example 4
  683. ---------
  684.    Do the same as Example 3 but over a slow line, e.g. a modem. This
  685. also shows how to add extra arguments via command line.
  686.              ch_nfsmount wustl-arc: slow_medium buffers 500
  687. (Note: NFS is not the best choice when reading files over a slow line.
  688. I did some work to get better performance through local caches but you
  689. should use `ftp' or better `ncftp' for file transfers if possible.)
  690. @EndNode
  691. @Node "FAQ" "ch_nfsc.guide/FAQ"
  692. @Next "Reporting Bugs"
  693. @Prev "Examples"
  694. @Toc "Main"
  695. Some questions and answers
  696. ==========================
  697. `Q.1'
  698.      Normal file and directory browsing is o.k. but some programs are
  699.      really slow when accessing files via NFS.
  700. `A.1'
  701.      Some programs do their IO (reads/writes) in very small pieces. The
  702.      handler tries to buffer writes for files opened with MODE_NEWFILE
  703.      and tries to read ahead but if that's not possible each separate
  704.      read or write action will result in the synchronous call of the
  705.      read/write procedure on the NFS server. This is certainly slow but
  706.      don't blame me for poorly written software. You may also try to
  707.      increase the buffer memory used with `addbuffers'. One of the
  708.      programs that don't behave well when used on a NFS mounted
  709.      partition is SAS/C 6.3. It does a lot of it's write IO doing
  710.      Seek()/Write() pairs for small data portions.
  711. `Q.2'
  712.      Everything else works o.k. but I always/sometimes get RPC Timeouts
  713.      (Error code 1005) when
  714.        a. listing large directories
  715.        b. reading files > ca. 8K
  716.        c. writing files > ca. 8K
  717. `A.2'
  718.      Try to set the respective maximum transfer size as a startup option
  719.      see @{"Special" Link "Special"} or via `ch_nfsctl' see @{"ch_nfsctl" Link "ch_nfsctl"}.
  720.     `ethernet:'
  721.           Start with 1000 bytes and test that and if that's o.k. try to
  722.           get more closer to the maximum possible number. Please report
  723.           what you get!
  724.     `On slip lines:'
  725.           Start with 800 bytes.
  726.     `Reason:'
  727.           Try to avoid IP fragmentation, because your server/router(s)
  728.           may have problems with this and in case of the loss of one
  729.           piece the whole (fragmented) IP packet has to be
  730.           re-transmitted. Another reason may be your local enthernet
  731.           card being too slow. Try to get the SANA II statistics from
  732.           it and look for overruns
  733. `Q.5.'
  734.      `C:Type' works for me but some programs (e.g. less 1.6z) report   
  735.           `not a regular file' and don't show the file contents.
  736. `A.5.'
  737.      This problem needs further observation.         My guess: These
  738.      programs may have problems with extra         permissions
  739.      (group/other) returned by Examine().
  740. `Q.6'
  741.      When I start the NFS Client I get an error code whithout any      
  742.        explanation.
  743. `A.6.'
  744.      Ch_nfsc should display an error requester before returning        
  745.      an error code. You may however suppress requesters by using       
  746.       a `noreq' utility ore setting the _NOREQ variable when using     
  747.         the `csh'.
  748. `Q.7'
  749.      I start `ch_nfsc' with debug option but `list' lists         a
  750.      length of 0.
  751. `A.7'
  752.      Due to speed considerations a big buffer is used when writing     
  753.         debug information into a file. Use the `FLUSH_DEBUG' option    
  754.          of `ch_nfsctl' to flush buffer, see @{"ch_nfsctl" Link "ch_nfsctl"}.
  755. `Q.8'
  756.          When listing files or directories on NFS mounted volumes the     Time
  757.      is off a few hours.
  758. `A.8'
  759.          Did you set the timezone environment variable `TZ' to your     correct
  760.      timezone?     But note that the value of `TZ' is read when the
  761.      NFS volume is     mounted. So changing `TZ' does not have impact on
  762.      running     NFS clients.
  763. `Q.9'
  764.          When a listing a directory containing filenames beyond 30 resp. 106
  765.      characters these files are not listed.
  766. `A.9'
  767.          For more information, see @{"Limitations" Link "Limitations"}.
  768. @EndNode
  769. @Node "Reporting Bugs" "ch_nfsc.guide/Reporting Bugs"
  770. @Next "Implementat. Notes"
  771. @Prev "FAQ"
  772. @Toc "Main"
  773. How to reach the author.
  774. ========================
  775.    If you find a bug please send me a detailed report so I will be able
  776. to understand it and possibly reconstruct or reproduce and fix it. If
  777. possible send me a copy of the log-file see @{"Debugging" Link "Debugging"}.
  778.              ********
  779.              * STOP *
  780.              ********
  781.    Before you send a mail please make sure it contains more than "Hey,
  782. I tested you program. But sometimes it does not function."
  783.    Just take the time to re-read your mail and try to answer the
  784. following:
  785.   1. Would YOU be able to get any useful information from YOUR mail?
  786.   2. Does it contain enough information about the used        
  787.      hardware/software and enough details on the problem?
  788.    If you think you supplied sufficient information please send it to
  789.    My current email address is ch@irb.informatik.uni-dortmund.de. If
  790. that's no longer valid you may try to reach me via snail mail:
  791.              Carsten Heyl
  792.              Unterer Markt 4
  793.              49477 Ibbenbueren
  794.              Germany
  795.    Feel free to add suggestions for improvements and the like ... I'm
  796. open to new ideas but can't make promises.
  797. @EndNode
  798. @Node "Implementat. Notes" "ch_nfsc.guide/Implementat. Notes"
  799. @Next "Thanks"
  800. @Prev "Reporting Bugs"
  801. @Toc "Main"
  802. General information about this implementation
  803. =============================================
  804. General
  805. -------
  806. First of all I hope you will find this program useful.
  807. The RPC library used is based on Sun's RPC 4.0 distribution, see
  808. @{"DISCLAIMER" Link "DISCLAIMER"}. Prior to version 1.0 the RPC library used was ported by
  809. Jarno Rajahalme <Jarno.Rajahalme@hut.fi>, a member of the AmiTCP group,
  810. with some small changes by me. As of Version 1.0 of `ch_nfsc' the RPC
  811. library as distributed with `AmiTCP' 3.0 is used. The mount/nfs stubs
  812. were generated by my port of the rpcgen program of the Sun TI
  813. (Transport Independant) rpc distribution. That version of rpcgen should
  814. be included in the `AmiTCP' 3.0 distribution.
  815. Implementation assumptions
  816. --------------------------
  817.   1. This NFS handler will only properly function with nfs servers
  818.      which use `.' and `..' for directory linking or emulate that
  819.      behaviour.
  820.   2. It is not legal to make a memory copy of a file lock for locks
  821.      obtained from this handler (doing this is considered illegal (see
  822.      `AmigaDOS Manual') but nevertheless done by some programs).
  823.   3. The Amiga FS's are case insensitive but Unix Filesystems are case
  824.      sensitive. The algorithm to find a file is currently as follows:
  825.        a. A lookup for exactly the given name is made.
  826.        b. If not succesful: A ReadDir is made on the given `dir' and
  827.           the first (caseinsensitive) match will be found (if any).
  828.           Note that this may be slow on large directories, so avoid
  829.           different case if possible. The procedure above is only
  830.           necessary when opening or listing files, it is *NOT*
  831.           necessary for reads or writes on open files.
  832.   4. The nfs-server must support `..' as a name for parent directory
  833.      (`nfsproc_lookup_2(<dir-handle>, "..")' must return parent dir).
  834.   5. `Lookup' fileid and `getattr' fileid must match.
  835. User/group ids on my amiga?
  836. ---------------------------
  837.    As of AmigaOS 3.0 the amiga knows about user and group information
  838. for files. This includes information about extra protection bits for
  839. others and group and information about the owner (UID/GID) of a file.
  840. Since I could not find any public information about this I gathered all
  841. information from others' sources and from the 3.0 includes.
  842.    Here is the information I got. The amiga seems to use other defaults
  843. than unix so some remapping needs to be done:
  844. `amiga'
  845.               UID 0       - user "nobody"
  846.               UID 1-65534 - normal user ids
  847.               UID 65535   - user "root"
  848.           
  849.               GID 0       - group "nobody"
  850.               GID 1-65534 - normal group ids
  851.               GID 65535   - group "wheel"
  852. `unix'
  853.               uid 0       - user "root"
  854.               uid 1-65534 - normal user ids
  855.               uid 65535   - user "nobody" (-1)
  856.           
  857.               uid 0       - group "wheel"
  858.               uid 1-65534 - normal group ids
  859.               uid 65535   - group "daemon" (nobody, -1)
  860. So the obvious conversions will be applied when necessary.
  861. (Note: User/group id's from `AmiTCP:db/passwd' resp. `AmiTCP:db/group'
  862. will *NOT* be converted.)
  863. What gets cached/buffered and how
  864. ---------------------------------
  865. `Ch_nfsc' does a caching of
  866.    - file/directory attributes (normally valid for 30 secs, see @{"Tuning" Link "Tuning"}.)
  867.    - Some directory structure information (normally valid for 60 secs,
  868.      see @{"Tuning" Link "Tuning"}.)
  869.    - `Write()'s' less or equal than WRITEBUFFERLIMIT (default: 16K) are
  870.      buffered to reduce net use and increase speed for programs doing
  871.      writes in small pieces.
  872.      (Note: Only files opened with MODE_NEWFILE will be write buffered)
  873.    - Small reads will be satisfied from a read buffer if possible.
  874. @EndNode
  875. @Node "Thanks" "ch_nfsc.guide/Thanks"
  876. @Next "History"
  877. @Prev "Implementat. Notes"
  878. @Toc "Main"
  879. Thanks and acknowledgements
  880. ===========================
  881. Lot's of people did their best to test this program and to locate bugs
  882. but as always:
  883.    *Bugs will still remain, use at your own risk!*
  884.    First I have to thank the AmiTCP group for porting a public
  885. available TCP/IP stack to the amiga and for answering
  886. questions/locating bugs. Without their effort I wouldn't had even think
  887. about writing this software.
  888.    Members of the group are Tomi Ollila    <Tomi.Ollila@hut.fi>, Pekka
  889. Pessi    <Pekka.Pessi@hut.fi>, Markus
  890. Peuhkuri    <Markus.Peuhkuri@hut.fi> and Jarno
  891. Rajahalme    <Jarno.Rajahalme@hut.fi> .
  892.    Thanks go to the following for their help in reporting and locating
  893. bugs and problems and sending information and suggestions: (I hope I
  894. didn't miss one.)
  895.    Stefan G. Berg, Kenneth Scott Bethke, Mike Bond, Joe Elliot, Michael
  896. D. Fischer, Peter Haumer, Joerg Cyril Hoehle, Holger Hofstaette, Arve
  897. Hjoennevaag, Oliver Huf, Kim-Minh Kaplan, Lee S. Kilpatrick, Magnus
  898. Lilja, Charles Macmillan, Rudolf Neuhaus, Clive Nicolson, Ross
  899. Niebergall, Stephen Norris, Timo Rossi, K. Raquel Sanborn, Matthias
  900. Scheler, Barnon "Barry" Tigner, Christian Wolf
  901.    Thanks go to Randell Jesup and Chris Hooper for answering questions
  902. and sending information about special DOS packets.
  903.    Thanks go to Ralph Babel for his book `The Amiga Guru Book' and the
  904. information parts of his mails.
  905.    (Even if I don't like the index of that book it's very useful to get
  906. information not found anywhere else.)
  907.    Special thanks go to Marcus Kommnick for his help and patience in
  908. testing various hardware and software components sometimes with life
  909. spawns of few minutes :-) and for cross-reading the documentation.
  910. @EndNode
  911. @Node "History" "ch_nfsc.guide/History"
  912. @Prev "Thanks"
  913. @Toc "Main"
  914. History
  915. =======
  916. `1.04'
  917.         * Updated/modified for AmiTCP 4.0
  918.         * All stuff compiled with SAS/C 6.51 now.
  919.         * ch_nfsmount now checks for resident ch_nfsc (thanks to Peter
  920.           Haumer)
  921. `1.02BETA'
  922.               
  923.         * too long filenames are skipped on examine now (see known bugs)     
  924.         * introduced LONG_FILENAMES parameter (106 characters instead
  925.           of 30)     
  926.         * added AmiTCP3.0b2 usergroup support (no need to set
  927.           USER/UMASK anymore, setting USER/UMASK via startup          
  928.           option disables this feature)     
  929.         * fixed EXAMINE_ALL bug returning wrong error code and wrong
  930.           filename lengths     
  931.         * added ED_OWNER support to EXAMINE_ALL     
  932.         * ch_nfsmount sets stack for client now (thanks to Joerg Cyril
  933.           Hoehle)     
  934.         * small bug fixes (dir cache, GET_WL/GWT_MW, read-only flag)
  935. `1.01BETA'
  936.               
  937.         * fixed bug when writing 0 bytes     
  938.         * fixed 2 bugs in buffer stuff (these might lead to data loss!)     
  939.         * recognizing timezone now     
  940.         * make shutting off ASYNC_RPC true
  941. `1.0BETA'
  942.         * AMITCP 3.0
  943.         * async support
  944.         * ch_nfsmount: fix fstab parsing bug, test for device/volume   
  945.                before mounting now     
  946.         * added ARexx port, added short parameters     
  947.         * some small fixes
  948. `0.007'
  949.         * internal version
  950. `Version 0.006 (BETA)'
  951.         * fixed wrong assertion if early mount failure
  952.         * re-activated "invalid argument" requester
  953.         * fixed time conversion bug
  954.         * fixed ch_nfsmount bug if ALL option was used           (may
  955.           crash machine/process)
  956.         * fixed freed memory reference if illegal passwd entry
  957.         * fixed timer problem when mount failed
  958. `Version 0.005 (BETA)'
  959.         * fixed memory leaks in Lock(), dir_DelEntry(),
  960.           CBuildFullName(),  do_act_Parent()
  961.         * fixed 2 subtle/serious memory bugs filename handling stuff
  962.         * added file type check to READ_LINK
  963.         * fixed delete/write mapping of SetProtection
  964.         * located FComp problem, packet arguments were modified, fixed
  965.           now
  966.         * (rough) memory limit is now adjustable via AddBuffers
  967.         * added preliminary die support (use at your own risk)
  968.         * added SLOWMEDIUM hint
  969.         * mapped Amiga "nobody"/"nogroup" to unix "-1"
  970.         * amiga guide doc's
  971. `Version 0.004 (BETA)'
  972.         * special BETA release
  973.         * some minor memory enhancements
  974.         * added serial/parallel debug options
  975.         * action CURRENT_VOLUME supported now
  976.         * find_update: make error message if open on non-file ffs like
  977. `Version 0.003 (BETA)'
  978.         * third release, to BETA testers only
  979.         * added RPCTimout parameter
  980.         * changed ch_nfsctl to ReadArgs()
  981.         * hopefully fixed assign-bug
  982.         * some speedup to dir cache lookup
  983.         * added read ahead buffer
  984.         * made error conversion context sensitive -> better error
  985.           reporting
  986.         * Requester now shows programname instead of "Background CLI"
  987.         * main(): Added explicit stack size check on startup
  988.         * some documentation fixes
  989.         * added a timer for automatic buffer/cache flushes
  990. `Version 0.002 (BETA)'
  991.         * second release, to BETA testers only
  992.         * added some support for slow lines (see Tuning)
  993.         * much more configuration parameters (too much?)
  994.         * Read(): avoid extra nfs call on EOF
  995.         * Lock(): fixed error reporting bug ("not found" was reported  
  996.                   as "out of memory")
  997.         * return volumename on root lock now (thanks to Timo Rossi)
  998.         * fixed serious memory bug in FIND_OUTPUT if second open on
  999.           exclusive           write is tried
  1000.         * fixed path parsing bug (a leading "/" is now always found and
  1001.                     considered illegal)
  1002.         * fixed path parsing bug regarding "..", "/.." is now          
  1003.           identical to amiga notation "//"
  1004.         * improved detection of illegal FIB contents presented to
  1005.           ExNext()
  1006.         * added write buffer for small write speedup
  1007.         * added debug parameters for maximal read/write/readdir size
  1008.         * minor changes/fixes
  1009.         * fixed error reporting bug (most RPC errors were reported as  
  1010.                   "out of memory" in 0.001)
  1011.         * added RPC Timeout requester
  1012. `Version 0.001 (BETA)'
  1013.         * first public release
  1014. @EndNode
  1015. @Node "Concept Index" "ch_nfsc.guide/Concept Index"
  1016. @Prev "Main"
  1017. @Toc "Main"
  1018. Concept Index
  1019. *************
  1020.  @{" ch_nfstab " Link "Installation"}                            Installation
  1021.  @{" Author " Link "Reporting Bugs"}                               Reporting Bugs
  1022.  @{" DISCLAIMER " Link "DISCLAIMER"}                           DISCLAIMER
  1023.  @{" Debugging " Link "Debugging"}                            Debugging
  1024.  @{" Installation " Link "Installation"}                         Installation
  1025.  @{" Questions and answers. " Link "FAQ"}               FAQ
  1026.  @{" Thanks " Link "Thanks"}                               Thanks
  1027.  @{" Timezone " Link "FAQ"}                             FAQ
  1028.  @{" Tuning " Link "Tuning"}                               Tuning
  1029.  @{" UMask " Link "Common"}                                Common
  1030. @EndNode
  1031.