Patch-ID# 100287-04 Keywords: rarp, telnet, wsize, filename, NDIS, DR-DOS, retry Synopsis: PC-NFS 3.5c jumbo patch Date: 29-Aug-91 SunOS release: all Unbundled Product: PC-NFS Unbundled Release: 3.5c Topic: BugId's fixed with this patch: Jumbo Patch Architectures for which this patch is available: PC Patches which may conflict with this patch: Not Applicable Obsoleted by: Problem Description: INSTALL: Create an empty directory, and move the file PCNFS35C.EXE into this directory. Make this new directory the current directory, and run PCNFS35C. After PCNFS35C has been run, you will find the necessary patch files (described below) have been created in this directory. The file README.1ST contains a list of bugs fixed by this patch, and explains when and why it should be installed. Please read this document before applying this patch to your systems. Note: Do NOT run PCNFS35C in the directory where PC-NFS is currently installed (typically C:\NFS). Doing so could damage the original PC-NFS files that this patch depends on. Use a clean (empty) directory when installing this patch. READ THIS FIRST for Sun Microsystems' PC-NFS 3.5c Geoff Arnold August 5, 1991 Contents: 1. INTRODUCTION 2. WHAT'S FIXED 3. HOW TO INSTALL 3.5c 1. INTRODUCTION AND DISCLAIMER This kit is a patch upgrade for Sun Microsystems' PC-NFS(R) version 3.5. It is intended to fix a number of specific bugs and requests for enhancement. NOTE: You should ONLY apply this patch if you have experienced at least one of the problems discussed in section 2 below. Please also note that this patch can be applied only to PC-NFS 3.5 or later. Before installing this patch, please check the version of PC-NFS installed on your system. You can do this by checking the message which is displayed when the PCNFS.SYS device driver is loaded; you can also use the command NET VERSION to see this text. If you are running an earlier version of PC-NFS, you should contact Sun Microsystems or your distributor to order a 3.5 upgrade kit. Once you have installed PC-NFS 3.5, you can then apply this patch. If the version of PC-NFS is later than 3.5c, you do not need to apply this patch; all PC-NFS patch kits are cumulative, so that 3.5d (if released) will include all of the fixes in 3.5c, and so on. Sun Microsystems does not guarantee that the changes introduced in this patch kit will be incorporated into any future version of PC-NFS. If you encounter problems when running with this patch, please try to determine whether the behavior of the software changed from 3.5 to 3.5c. THIS KIT DOES NOT INCLUDE ANY MECHANISM FOR "BACKING OUT" THE CHANGES. PLEASE MAKE SURE THAT YOU HAVE YOUR ORIGINAL PC-NFS DISTRIBUTION DISKETTES IN CASE YOU NEED TO RE-INSTALL PC-NFS. 2. WHAT'S FIXED The following bugs are fixed with this patch. A detailed description of each follows: Bugid SDR# First fixed in See section ----- ---- -------------- ----------- 1054724 pcn1049 3.5a 2.1 1058204 pcn1085 3.5a 2.2 1055679 pcn1063 3.5a 2.3 1055936 pcn1064 3.5a 2.4 1052012 pcn1027 3.5a 2.5 1024986 pcn290 3.5a 2.6 1057109 pcn1071 3.5a 2.7 1057999 pcn1077 3.5a 2.8 1055662 pcn1061 3.5a 2.9 1058165 pcn1093 3.5a 2.10 1055619 pcn1060 3.5a 2.11 1056551 pcn1086 3.5a 2.12 1057515 pcn1073 3.5a 2.13 1058684 pcn1097 3.5a 2.14 1033668 pcn723 3.5a 2.15 1058892 pcn1103 3.5b 2.16 1059415 pcn1121 3.5b 2.17 1061622 pcn1146 3.5b 2.18 1061735 pcn1147 3.5b 2.19 1061979 pcn1151 3.5b 2.20 1062641 pcn1159 3.5b 2.21 1062792 pcn1160 3.5b 2.22 1056564 pcn1104 3.5b 2.23 1065657 pcn1176 3.5c 2.24 1065658 pcn1177 3.5c 2.25 (none) pcn1178 3.5c 2.26 For each fix, the external bug number and internal PC-NFS change order (SDR) number are shown. Any questions should reference the external bug number, since the SDR code is only for internal use. 2.1 RARP BUG (SDR#pcn1048, bug#1054724) In PC-NFS 3.5 a system using RARP to determine its IP address would fail if the name and address of the RARP server were not included in the local \NFS\HOSTS file. This bug is fixed in 3.5b. 2.2 LONG HOST NAMES (SDR#pcn1085, bug#1058204) If you use NIS as a gateway to the Domain Name System, and if the fully qualified host name of your PCNFSD server is longer than 16 bytes, the name will be stored incorrectly and cannot be used to send a NET NAME login request. The size limit is now 64 bytes. 2.3 TELNET FUNCTION KEYS (SDR#pcn1063, bug#1055679) In all versions of PC-NFS prior to 3.5a, the VT-100 emulation of TELNET supported only function keys F1-F4, and TELNET control functions were assigned to F5-F10. In 3.5b, function keys F1 to F12 generate VT-100 style escape sequences, and all TELNET control functions have been assigned to + sequences. (Note that the handling of F11 and F12 involves tricky BIOS-specific conditional code, and if you encounter problems on your system you should use the EM.COM emulator shipped with PC-NFS 3.5.) 2.4 IP TTL FIXED (SDR#1064, bug#1055936) The default value of the TTL (Time To Live) for IP datagrams generated by PC-NFS 3.5 was 15, the old Internet standard. This is inadequate for some complex networks, and a value of 60 is now used. 2.5 MOUNT OPTIONS (SDR#1027, bug#1052012) The NET USE command (but not NFSCONF) now supports a number of per-mount options. The options are timeo=NN Initial RPC timeout in tenths of a second. If no reply is received in this time, the request will be retransmitted and the timeout will be increased to 4*NN. On each retry, the timeout will be multiplied by 4, up to a limit of 30 seconds. The maximum value for NN is 300. (Default:7) retries=NN The number of retries for an NFS operation. If this is given as 0, the operation will be retried forever. (Default: 4) wsize=NNNN Specifies the maximum size of each NFS write operation. The maximum is also constrained by the TSIZE advertised by the NFS server (typically 8192). Note that PC-NFS will always use an NFS read size of 1024. In addition, the following (mutually exclusive) options are supported as in 3.5: ro Mount read-only mustshare|ms Requires use of Lock Manager on server. noshare|ns Will not use Lock Manager. (Default.) Multiple options are separated by commas, and the complete option list is introduced by a slash. The following is a typical example: NET USE F: hinode:/usr2 /ms,wsize=4096,timeo=15 You should use these options if you are communicating over a low-speed link, or with a server which may execute some or all operations slowly. In testing against a mainframe which was accessed over a leased line, we found it best to use settings such as: NET USE H: rmt3090:/ /ns,wsize=1024,timeo=200,retries=20 Please note that NFSCONF has not been modified to recognize these options. This means that if you modify DRIVES.BAT to include any of these options and then use NFSCONF to manipulate drives or printers, your changes will be lost. Note also that with this change the "/rN" option used with PCNFS.SYS ceases to have any effect. The only way to force indefinite retransmission is with the "/retries=0" NET USE option. 2.6 LONG FILE NAMES REVISITED (SDR#pcn290, bug#1024986) In PC-NFS 3.5 we revised the way in which file names were processed in order to more accurately mimic the behavior of DOS. Unfortunately, at least one application had been written to rely upon the earlier, inaccurate behavior of PC-NFS. While such applications should be modified to remove their dependence on the earlier bug, we have added another PCNFS.SYS option, "/v", to revert to the previous mode of operation. (The effects are subtle: you should not expect that adding this option will automatically eliminate all DOS filename restrictions.) 2.7 NDIS DRIVER FIXES (SDR#1071, bug#1057109) The PC-NFS NDIS interface, NFS-NDIS.SYS, has been modified to resolve certain problems which could arise when multiple NDIS protocol stacks were loaded. 2.8 NET SUBNET BROADCAST (SDR#1077, bug#1057999) When you issue a NET SUBNET * command, PC-NFS transmits a number of ICMP AM1 address mask requests. Prior to 3.5a, all of these requests were broadcast, a process which could lead to a significant amount of redundant network traffic as many systems transmitted replies to the request. In 3.5b the first request will be directed at the last network node from which we received an ARP response, if any. During startup, this will usually be an NIS or RARP server. In the (unlikely) event that this host does not reply to the request, subsequent requests are broadcast as usual. 2.9 GROUP MEMBERSHIP CLEARED ON LOGOUT (SDR#1061, bug#1055662) In 3.5 there was a bug in the NET LOGOUT command which meant that the secondary group membership list was not cleared upon logout. This meant that subsequent NFS operations were performed by user -2 ("nobody") but with group access to those secondary groups in which the previous user was a member. This security hole has been fixed in 3.5b. 2.10 QUIET MODE NET (SDR#1083, bug#1058165) A frequent request for enhancement for the NET command has been that it be less verbose, to make it easier for people to write batch files or spawn NET from applications. The operation of the NET command can now be silenced in either of two ways. A "-q" (or "/q") option may be added after the word NET but before the subcommand, and separated from both words with whitespace, as in NET -q USE G: hinode:/usr2 Alternatively, the environment variable NFSHUSH may be defined. Three points should be noted: (1) Most error messages will also be suppressed; you will need to check the ERRORLEVEL returned by NET to determine if the command succeeded or failed. (2) To make start completely silent you should add @ECHO OFF to the start of NETWORK.BAT and DRIVES.BAT. (3) NFSCONF will not understand the "-q" option, so you should not add this option to lines in NETWORK.BAT or DRIVES.BAT if you use NFSCONF. 2.11 NET USE SEND INCORRECT UNMOUNT RPC (SDR#pcn1060, bug#1055619) In PC-NFS 3.5, a NET USE or NFSCONF "Mount" command would cause PC-NFS to send an incorrect "Unmount" RPC to the mount daemon on the server. This was wrong, but completely benign. It's fixed in 3.5b. 2.12 COPYRIGHT AND VERSION ERRORS (SDR#pcn1086, bug#1056551) A number of version and copyright strings were incorrect in 3.5, and are corrected in 3.5b. 2.13 ATTRIBUTE HANDLING ON CHMOD (SDR#pcn1073, bug#1057515) The emulation of the DOS Chmod (4300H) request in PC-NFS 3.5 and earlier versions was incorrect; it would occasionally report that a file was readable or writeable when it was not. This did not introduce any security hole, since the Open and Create access checking was correct. This problem is fixed in 3.5b. 2.14 NET PRINT WHEN COEXISTING WITH NETWARE (SDR#pcn1097, bug#1058684) Using various techniques (e.g. an NDIS MAC driver, NFS-NDIS.SYS, and the Spry NDIS/IPX) it is now possible to run PC-NFS and NetWare concurrently, provided that PC-NFS is started and all NFS drives and printers are mounted before NET3 or NET4 is started. However, there was an incompatibility between the NET PRINT command and the NetWare shell. This fix resolves the incompatibility. 2.15 SPACE HANDLING IN FILE NAMES (SDR#pcn723, bug#1033668 (re-opened)) An earlier bug related to the handling of embedded spaces in path names was incorrectly fixed in 3.5. This meant that certain operations might fail unless the "space significance" (/s) option was set. This problem is resolved in 3.5b. 2.16 CODE PAGE SWITCHING (SDR#pcn1103, bug#1058892) PC-NFS 3.5 and 3.5a are incompatible with the code page switching software in some versions of DOS. This problem is fixed in 3.5b. 2.17 PRINTER HOT KEY INTERCEPTED EVEN WITHOUT PRINTING (SDR#pcn1121, bug#1059415) In PC-NFS 3.5 a bug was introduced in the print redirector whereby the keyboard interrupt was intercepted and the printer hot key (default: Alt-P) was filtered even if no printer redirection had taken place. A related problem is the fact that the printer hot key wouldn't work under Windows. In 3.5b there is a new PRT.COM which uses an entirely different hot-key strategy. Instead of intercepting all keystrokes and looking for a particular combination, it checks every clock tick to see if the left shift, right shift and (either) control key are all depressed. If they are, and there is data to be printed for a redirected printer, and if that printer was configured for hot-key, it will spool the data. In this version it is not possible to configure the key combination. However, an inadvertent depression of the new hot-key sequence should be benign. This mechanism works correctly with Windows. 2.18 NDIS DRIVER LOOPBACK PROBLEM (SDR#pcn1146, bug#1061622) The PC-NFS NDIS driver includes logic to detect "loopback" packets (packets originating in the local PC) and filter them out. However a bug in the code meant that certain addresses were not handled correctly, resulting in packets being incorrectly identified as loopbacks and dropped. This is fixed in 3.5b. 2.19 UNMOUNTING A DRIVE DOES NOT DISABLE ALL OPERATIONS ON THAT DRIVE (SDR#pcn1147, bug#1061735) The code in PC-NFS 3.5 to unmount a drive (via NET USE or NFSCONF) did not reset a particular DOS data structure correctly. As a result, it was possible that some operations on the drive would not fail as expected. 2.20 INCORRECT ERROR CODE RETURNED ON SHARING VIOLATION (SDR#pcn1151, bug#1061979) The extended error information returned when a file open failed due to a sharing violation was incorrect. This caused problems with the application "Q&A". 2.21 DOS FULL PATH NAME PROBLEM (SDR#pcn1159, bug#1062641) A shareware application (EDDY) used the undocumented DOS 60H function to translate a path into a canonical (absolute) path. This resulted in the creation of a network path of the form \\d\foo\bar\bletch where 'd' is the redirected drive letter. PC-NFS did not recognize such a path as referring to an NFS drive. It does in 3.5b. 2.22 READ STARTING AT ODD BYTE OFFSET MAY FAIL (SDR#pcn1160, bug#1062792) A file read starting at an odd byte offset may fail, or read the wrong data. This problem is fixed in 3.5b. 2.23 INCORRECT END-OF-LINE HANDLING IN LPD (SDR#pcn1104, bug#1056564) The "-x" option option to the PC-NFS print server did not work correctly. It is fixed in 3.5b. 2.24 RETRY LIMIT HANDLING (SDR#pcn1176, bug#1065657) The NFS RPC retry limit logic was generating a regular DOS error instead of a critical error. This is fixed in 3.5c. 2.25 DR-DOS 5.0 COMPATIBILITY (SDR#pcn1177, bug#1065658) Two bugs were reported by Digital Research concerning compatibility of PC-NFS with DR-DOS 5.0. Firstly, PC-NFS and DR-DOS were both using the same subfunction code for a private DOS extension, leading to problems with the PC-NFS CHMOD and the DR-DOS file password functions. Secondly PC-NFS could corrupt DR-DOS when loaded high in some configurations. These bugs are fixed in 3.5c. 2.26 MORE MOUNT OPTIONS (SDR#pcn1178) There was a bug in the new MOUNT options code introduced in 3.5a (see section 2.5 above) which prevented the use of "retries=0". In addition, the following mount options have been added for use with printers: end={hotkey|timeout|xit|manual} Specifies how print spooling is to be initiated. Each option may be abbreviated to a single letter. 'h' specifies that spooling is triggered by hotkey (see 2.17 above). 't' specifies that spooling will occur after the appropriate timeout (5 minutes or the number of seconds specified in the "prt -tNN" option. 'x' specifies that spooling will be initiated on program exit. And 'm' specifies that the user must initiate spooling "manually" using the "net print" command. fmt={text|raw|postscript} Specifies the format of the print data. 't' means regular text, with filtering of most non-printing codes. 'r' indicates that print data should be passed without any filtering. 'p' indicates that a PostScript header should be prepended and binary data should be filtered out. 3. HOW TO INSTALL 3.5c This patch is distributed in several formats: a tar archive, a self-extracting DOS archive, etc. Unpack the archive to a single diskette or to a directory on a mountable file system. The user of the PC to be upgraded should start by backing up the PC's hard disk. (This should be standard operating procedure before any significant upgrade.) Then insert the diskette or mount the file system, change to the correct directory, and type UPGR35C C where C is the drive on which PC-NFS was installed. You should have at least 80K free on this drive. The following files will be installed during the upgrade: File: Size: Comments: PCNFS SYS 59623 An unserialized copy of the resident NFS driver. PCNFS MSG 33040 Messages revised to reflect changes. EMTELNET EXE 59853 Telnet executable. EM COM 32674 Telnet VT-100 emulator. EM_MSG TXT 3257 Messages for telnet. NET EXE 100217 Primary PC-NFS administration program. PRT COM 5316 Print redirector. NFS-NDIS SYS 3440 PC-NFS NDIS interface. LPD EXE 61062 PC-NFS print server. CHMOD EXE 11229 Utility to set file protection. The kit includes three other files: COPYSER EXE 9068 Program to copy serial number to PCNFS.SYS README 1ST 18336 This file. UPGR35B BAT 1953 The installation script. Make certain the files copied from the upgrade diskette are identical in size to the files listed above. Your old PCNFS.SYS file will be saved as PCNFS.OLD, and may be deleted once you are sure that the system is operating correctly.