RISC OS NFS 2.27
================

2.26 broke unpreserved filename extensions. Now fixed!
Now issues Service_DiscDismounted when a dismount occurs.


RISC OS NFS 2.26
================

Merging of main NFS tree with Online Media's NFSSTB - see below

*NFSBoot now returns an error if !NFSBoot cannot be found.

Removed unnecessary XOS_Bits from various places

Fixed preserved filename extensions. (ie it is now possible to have
a file fred.html on an NFS fileserver presented to RISC OS as
fred/html with filetype &FAF, and RISC OS files called jim/html
with filetype &FAF will map back to jim.html on the server. This
behaviour has always been documented, and always been broken, as
far as I can tell).

NFS->RISC OS filename conversion now strips out nasty characters
(replaces them with _).

Timeout configurable via *Timeout and NFS$Timeout.

Cache size configurable via *CacheSize and NFS$CacheSize. Default
cache size upped to 53 entries.

RISC OS 2 compatibility removed:

*Back, *Bye, *NoDir, *NoLib, *NoURD, *URD commands removed.
Various defunct FSEntry_Func calls removed.
Now relies on FileSwitch to track current directory, etc.
Relies on FileSwitch to canonicalise filenames.
*TimeOffset removed - irrelevant as RISC OS 3 now works in UTC.
Routines to do *Cat, *Ex, *FileInfo removed (never called under RISC OS 3).

Some of NFS's behaviour (unsetting CSD if on a dismounted mount) was
broken by RISC OS 3. Such behaviour, where applicable, has been
reimplemented using the new FileSwitch calls.

Image filing systems now operate correctly on NFS (it was not returning
the necessary error codes).

Caselessness now internationalised.

Errors now reported directly from Internet module where possible
(=> slightly improved internationalisation, but less meaningful errors
if used with Internet 2.xx).

Various memory savings mean approx 20K less memory used than NFS 2.11

*CacheTime now reports the current time if issued with no parameters
(it used to set the expiry time to 0!).

*NFSInfo no longer reports CSD etc (these have never been meaningful
with RISC OS 3).

Help text improved, and case of * Commands sorted out.

To do: Full file system bashing - in particular check all post-RISC OS 2
       OS_FSControls.
       Full internationalisation of error messages and displays.
       Check cache resizing.
       Do we want to build with NFSSTB's network access counter?
       
       
STBNFS version 1.03
-------------------
Changed module title string to NFSSTB.

Re-enabled case-insensitivity code.  Porting current applications to be case
sensitive is proving to be difficult, since many problems lie in absolute
files.  Therefore, for now the NFS will be case-tolerant (with the network
traffic overhead incurred by incorrect names).  However, all future
applications for the trial should assume case-sensitivity.

STBNFS version 1.02
-------------------
If the extensions file cannot be opened for any reason, STBNFS no longer
reports an error.  It copes with the situation. (see extensions.c).


STBNFS version 1.01
-------------------
'Oops, file no longer exists but I don't care' Bug fixed.

A check is now made in nfsrw_readmany(...) (well, schedule(...), actually) to
check if NFS return value is valid (ie. NFS_OK).  Previously, only a check on
the RPC return value was being made.  The RPC could be successful, but not
the NFS call...


STBNFS version 1.00 
-------------------
Overview of changes from v2.11 NFS code

Removed case tolerance code.

If you don't get a filename exactly right, it isn't recognised any more. 
This is because the searching for a 'nearly matching' name does not use the
cache, and requires complete searches of the directory across NFS every time
it is used (even in a pathname !).  This does not affect desktop operation,
since it uses NFS-supplied (ie case-correct) filenames.  It may cause errors
with CLI commands, though.

Using the correct case gives an enormous improvement in network traffic
because of this (a factor of 10 improvement...).  This is also true for 
v2.11.

Changed the way that directory listing requests are handled. 

If the request from FileSwitch wants to start from the beginning of a
directory, then the directory data is reloaded across the network.  If the
request is for entries beyond the beginning of a directory (for example,
subsequent _Func 15 calls), then an attempt is made to use the data already
resident in the RPC buffer.  This gives a 10% (roughly) further improvement
in network traffic when navigating directory structures.

Increased size of cache

The cache now has 50 entries, and has pushed the cache hit rate up from
around 70% to nearer 75% in average use.

For systems with large numbers of entries on directory branches (ie. > 50),
it would be advantageous to extend this further.  There may be a case to make
this user-defineable ?  (GUI front end for fine-tuning perhaps ?).

CP
22/2/95

NFS version 2.23
----------------
Overview of changes from v2.22 code

Added the ability to boot from NFS as the configured filesystem, for Om 
set-top box use.

The effective sequence of operations is

    mount -host <Inet$BootServer> nfsboot <Inet$MountPath>
    run nfs::nfsboot.$.!NFSBoot

If Inet$BootServer is not set then the boot sequence is aborted.
If Inet$MountPath is not set then the default"/nfsboot" is tried.

KSR
23/2/95
