HGFTP Release Notes October, 2009 This file contains the release notes for HGFTP V3.2-4. It describes any features, restrictions, changes, or additions made to the HGFTP software in this release, and includes information that is not provided elsewhere in the HGFTP manual set. Revision/Update Information: This is a new manual. Operating System and Version: OpenVMS VAX V5.0 or later OpenVMS Alpha V1.5 or later Software Version: HGFTP V3.2-4 Hunter Goatley ________________________ 24 October 2009 Permission is granted to copy and redistribute this document for no commercial gain. The information in this document is subject to change without notice and should not be construed as a commitment by Hunter Goatley. The authors assume no responsibility for any errors that may appear in this document. DISCLAIMER: The software described in this document is provided "as is." No guarantee is made by the authors as to the suitability, reliability, security, usefulness, or performance of this software. The following are trademarks of Digital Equipment Corporation: AXP VAX DEC OpenVMS VMS UCX VAXcluster VMScluster MultiNet is a registered trademark of Process Software, LLC. TCPware is a trademark of Process Software, LLC. __________ Copyright ©2009 Hunter Goatley. All Rights Reserved. _______________________________________________________ Contents _______________________________________________________ CHAPTER 1 INSTALLATION NOTES 1-1 _________________________________________________ 1.1 COMMANDS 1-1 _________________________________________________ 1.2 ON-LINE HELP 1-1 _______________________________________________________ CHAPTER 2 NEW FEATURES AND BUG FIXES 2-1 _________________________________________________ 2.1 NEW FEATURES AND BUG FIXES IN HGFTP V3.2-4 2-1 _________________________________________________ 2.2 NEW FEATURES AND BUG FIXES IN HGFTP V3.2-3 2-1 _________________________________________________ 2.3 NEW FEATURES AND BUG FIXES IN HGFTP V3.2-2 2-2 _________________________________________________ 2.4 NEW FEATURES AND BUG FIXES IN HGFTP V3.2-1 2-2 _________________________________________________ 2.5 NEW FEATURES AND BUG FIXES IN HGFTP V3.2 2-3 _________________________________________________ 2.6 NEW FEATURES AND BUG FIXES IN HGFTP V3.1 2-4 iii Contents _________________________________________________ 2.7 NEW FEATURES AND BUG FIXES IN HGFTP V3.0-1 2-5 _________________________________________________ 2.8 NEW FEATURES AND BUG FIXES IN HGFTP V3.0 2-6 _______________________________________________________ CHAPTER 3 RELEASE NOTE INFORMATION FOR PREVIOUS RELEASES 3-1 _________________________________________________ 3.1 NEW FEATURES AND BUG FIXES IN HGFTP V2.7 3-1 _________________________________________________ 3.2 NEW FEATURES AND BUG FIXES IN HGFTP V2.6-5 3-3 _________________________________________________ 3.3 NEW FEATURES AND BUG FIXES IN HGFTP V2.6-4 3-3 _________________________________________________ 3.4 NEW FEATURES AND BUG FIXES IN HGFTP V2.6-3 3-3 _________________________________________________ 3.5 NEW FEATURES AND BUG FIXES IN HGFTP V2.6-2 3-4 _________________________________________________ 3.6 NEW FEATURES AND BUG FIXES IN HGFTP V2.6-1 3-5 _________________________________________________ 3.7 NEW FEATURES AND BUG FIXES IN HGFTP V2.6 3-6 iv Contents _________________________________________________ 3.8 NEW FEATURES AND BUG FIXES IN HGFTP V2.5-4 3-6 _________________________________________________ 3.9 NEW FEATURES AND BUG FIXES IN HGFTP V2.5-3 3-6 _________________________________________________ 3.10 NEW FEATURES AND BUG FIXES IN HGFTP V2.5-2 3-8 _________________________________________________ 3.11 NEW FEATURES AND BUG FIXES IN HGFTP V2.5-1 3-8 _________________________________________________ 3.12 NEW FEATURES AND BUG FIXES IN HGFTP V2.5 3-9 _________________________________________________ 3.13 NEW FEATURES AND BUG FIXES IN HGFTP V2.4 3-10 _________________________________________________ 3.14 NEW FEATURES AND BUG FIXES IN HGFTP V2.3-1 3-11 _________________________________________________ 3.15 NEW FEATURES AND BUG FIXES IN HGFTP V2.3 3-11 _________________________________________________ 3.16 NEW FEATURES AND BUG FIXES IN HGFTP V2.2-6 3-12 _________________________________________________ 3.17 NEW FEATURES AND BUG FIXES IN HGFTP V2.2-5 3-12 v Contents _________________________________________________ 3.18 NEW FEATURES AND BUG FIXES IN HGFTP V2.2-4 3-12 _________________________________________________ 3.19 NEW FEATURES AND BUG FIXES IN HGFTP V2.2-3 3-13 _________________________________________________ 3.20 BUG FIXES IN HGFTP V2.2-2 3-13 _________________________________________________ 3.21 BUG FIXES IN HGFTP V2.2-1 3-13 _________________________________________________ 3.22 NEW FEATURES IN HGFTP V2.2 3-14 _________________________________________________ 3.23 BUGS FIXED IN HGFTP V2.2 3-15 _________________________________________________ 3.24 NEW FEATURES AND BUG FIXES FROM PREVIOUS RELEASES 3-16 _______________________________________________________ CHAPTER 4 KNOWN BUGS AND RESTRICTIONS 4-1 _______________________________________________________ CHAPTER 5 PROBLEM REPORTS 5-1 _________________________________________________ 5.1 INFO-MADGOAT@MADGOAT.COM 5-1 _________________________________________________ 5.2 MADGOAT-ANNOUNCE@MADGOAT.COM 5-1 vi Contents _________________________________________________ 5.3 MADGOAT-BUGS@MADGOAT.COM 5-1 _________________________________________________ 5.4 MADGOAT-REGISTER@MADGOAT.COM 5-2 vii _______________________________________________________ 1 Installation Notes This chapter contains items of interest pertaining to the installation of HGFTP. HGFTP consists of both an FTP client and an FTP server. It requires the NETLIB library for TCP/IP support. Both the client and server support STRU VMS, which means that VMS files transferred between a client and server that both support STRU VMS will retain all file attributes. __________________________________________________________________ 1.1 Commands The command used to invoke the HGFTP client can either be defined as a foreign symbol or added to the system- wide DCL command tables (SYS$LIBRARY:DCLTABLES.EXE). When the latter method is chosen, the command is available to all users on the system (though file protections and privileges may prevent them from executing the program). The installation gives you the option of adding the FTP command to the DCL command tables. Since most TCP/IP vendors also supply an FTP command, adding the HGFTP command will replace the vendor's definition. __________________________________________________________________ 1.2 On-line Help During the installation, you will be given the option of installing the help files for HGFTP client in one of the system help libraries. The system default help library is SYS$SYSROOT:[SYSHLP]HELPLIB.HLB. The installation procedure will give you the option of 1-1 Installation Notes installing the help files in other libraries (those defined by the logicals HLP$LIBRARY, HLP$LIBRARY_1, etc.). You may wish to insert the help files in a local library pointed to by one of the HLP$LIBRARY logicals to avoid cluttering the normal VMS help library. The on-line help files can be found in the directory HG_ROOT:[HELP]. 1-2 _______________________________________________________ 2 New Features and Bug Fixes HGFTP V3.2-4 includes the following new features and bug fixes over earlier versions. __________________________________________________________________ 2.1 New Features and Bug fixes in HGFTP V3.2-4 o The support for the COPY/FTP DCL command did not always properly handle case-sensitive filenames. This problem has been corrected. o Support has been added for the DELETE/FTP DCL command. The following logical must be defined for DELETE/FTP to work: $ define openvms$ftpdel hg_exe:ftp.exe o The FTP server better emulates UNIX when responding to NLST and LIST commands in UNIX-emulation mode. The device name is now properly included in full file specifications, and the type ".dir" is no longer displayed for directory names. __________________________________________________________________ 2.2 New Features and Bug fixes in HGFTP V3.2-3 o The HP SYS ECO (V15 for VMS V7.3-2, V6 for Integrity) changed some time service that caused HGFTP to exit with SS$_IVTIME (Invalid time) errors. The default timeout for NETLIB calls was changed from the old default (which has worked since VMS V5.4) to a new default of 7 minutes. This change allows HGFTP to run on systems with the SYS ECOs installed. 2-1 New Features and Bug Fixes __________________________________________________________________ 2.3 New Features and Bug fixes in HGFTP V3.2-2 o The FTP server has been modified to show UNIX-style filenames in response to an NLST command with a directory specified. Previously, VMS-style filenames were returned, even when UNIX-emulation mode was enabled. A new logical, HG_FTP_HIDE_NLST_DIR, controls whether or not the UNIX-style filenames returned for an NLST command include the directory path or not. Some UNIX FTP servers include the directory names, while others omit them. o The FTP server has been modified to include the file size in bytes in the response to a RETRieve command. __________________________________________________________________ 2.4 New Features and Bug fixes in HGFTP V3.2-1 o The FTP server has been modified to allow sites to choose not to abort data transfers when a premature QUIT is received from the remote client. To delay processing of the QUIT until the file transfer has completed, define the following logical: $ define/system/exec hg_ftp_dont_abort_on_quit true o A new logical, HG_FTP_SYST_REPLY, can be defined to specify a a custom system identification string in response to the SYST command from a client. o A parsing error in the support of the DCL command COPY/FTP has been corrected. o In previous versions, the FTP server would remove "[000000]" from anywhere in a directory specification when it was converted to a UNIX-style directory name. This behavior was not correct, as it's possible to have a 000000.DIR that isn't a top- level directory. The FTP server has been modified 2-2 New Features and Bug Fixes so that "000000" is removed only if it's a top-level directory name. o When emulating UNIX directory listing output, file sizes larger than 99,999,999 no longer result in a display of "********" as in previous versions. o An installation error related to the NETLIB library has been corrected. __________________________________________________________________ 2.5 New Features and Bug fixes in HGFTP V3.2 o The ALIAS ADD and ALIAS MODIFY commands in the HGFTP client now accept /PORT=port and /[NO]PASV for the stored aliases. Note: Previous versions of HGFTP did not properly initialize the alias flags, and it's possible that some existing aliases may now show bogus PORT or PASV information. The client attempts to detect these cases, but may not be successful 100% of the time. If you find that a defined ALIAS shows bogus port or PASV info, simply use ALIAS MODIFY to specify the correct /PORT or /PASV setting. That will correct the problem (and properly leave the flags set for future updates). o The HGFTP client and server now support the MDTM (MoDification TiMe) command. This command displays the modification time for a specified file. (NOTE: The modification time displayed is a GMT time value. No attempt is made to determine whether or not daylight savings was in effect on the modification date, so the GMT time returned by the HGFTP server in response to the MDTM command may be off by an hour from the actual GMT time when the file was modified.) o The commands SET WINDOW_SIZE and SHOW WINDOW_SIZE are now supported by the HGFTP client. 2-3 New Features and Bug Fixes o The NETLIB component has been upgraded to NETLIB V2.4 for Alpha and IA64. The last released version of NETLIB for VAX is V2.3D; this version is included with HGFTP for VAX. __________________________________________________________________ 2.6 New Features and Bug fixes in HGFTP V3.1 o The HGFTP Listener has been enhanced to allow the acceptance and rejection of connections based on IP address. The logicals HG_FTP_ACCEPT_IP_LIST and HG_ FTP_REJECT_IP_LIST (both defined in the HG_FTP_ NAME_TABLE) specify the IP addresses to accept and reject, respectively. The following rules are applied with these logicals: 1 If neither logical is defined, access is not restricted. 2 If only the ACCEPT logical is defined, all connections are rejected unless the IP address is included in the equivalence for the logical. 3 If only the REJECT logical is defined, all connections are accepted unless the IP address is included in the equivalence for the logical. 4 If both logicals are defined, only specified ACCEPT addresses are accepted. If an address is accepted because it matches a specified network, the listener will check to make sure the particular IP address is not rejected explicitly. Examples: 2-4 New Features and Bug Fixes $ create/name_table/attr=super/exec- _$ /parent=LNM$SYSTEM_DIRECTORY/nolog- _$ /prot=(s:rwed,o:rwed,w:r) HG_FTP_NAME_TABLE $ DEFINE/EXEC/TABLE=HG_FTP_NAME_TABLE - _$ HG_FTP_ACCEPT_IP_LIST "10.1.2.3","224.32.32.34",- _$ "66.170.199.220/29" In this example, only connections from IP addresses 10.1.2.3, 224.32.32.34, and the subnet 66.170.199.220 would be allowed to connect. The "/29" specifies that there are 29 significant bits in the address (meaning a subnet mask of 255.255.255.248). o BLOCK mode transfers are broken (and have been since before HGFTP V2.0), so the HGFTP server has been modified to disallow BLOCK mode transfers. This change allows the Opera web browser to work with HGFTP running in UNIX-emulation mode. o The HGFTP server was modified to return a 504 ``bad parameter'' error instead of a 501 ``bad syntax'' error when an invalid mode was specified. o In previous V3.x releases, the HGFTP client did not preserve the case of the file specification when /URL is specified. This problem has been corrected. __________________________________________________________________ 2.7 New Features and Bug fixes in HGFTP V3.0-1 o The HGFTP server has been modified once again to try to support the web browsers of the world. The support for rooted directories has been improved to work with recent versions of IE and Netscape when UNIX-emulation mode is enabled. o The HGFTP client now supports the /PASV command-line qualifier to make passive mode the default for file transfers. 2-5 New Features and Bug Fixes o Coincidentally, a month after /PASV support was added, a DCL ECO from Compaq adds /PASSIVE to COPY/FTP and DIR/FTP. HGFTP now supports that new qualifier on those commands too. o The HGFTP server will now ignore UNIX-style qualifiers on the LIST/NLST commands. Many stupid GUI FTP clients assume the remote server is a UNIX system and will incorrectly send commands such as ``LIST -aL''. HGFTP now ignores any characters prefixed with ``-''. o A subtle bug in the encoding of alias passwords that occurred when the password was longer than the host name has been fixed. Stored aliases that meet this criteria will most likely need to be REMOVEd and ADDed again to get the proper encoding of the password. o The commands ON ERROR CONTINUE and ON SEVERE CONTINUE have been added to the HGFTP client. These commands were documented in previous releases, but were, in fact, missing. o Several issues that prevented successful local compilation from the sources without modification have been corrected. __________________________________________________________________ 2.8 New Features and Bug fixes in HGFTP V3.0 o The official name of this software package has been changed from "MadGoat FTP" to "HGFTP" to more properly identify the primary author and maintainer of the software. MadGoat Software (the corporation) has never had anything to do with MGFTP; its development and maintenance since 1995 has been solely the work of Hunter Goatley. 2-6 New Features and Bug Fixes o The parsing of FTP URLs (specified using the /URL qualifier added in V2.7) has been modified to treat all file specifications ending in "/" as directory specifications, which causes the client to leave the user at the FTP prompt, after having issued a CWD command to move to the specified remote directory. o Support for alternate ports in FTP URLs has been added to the HGFTP client. The accepted URL format is now: ftp://[username[:password]@]host.domain[:port]/[directory/[file]] o The file FTP.CLD has been relocated from the executable directory to HG_ROOT:[COM] to better support dual-architecture installations. 2-7 _______________________________________________________ 3 Release Note Information for Previous Releases The following sections detail the release history of HGFTP from V2.0 through V2.7. They are included here for supplementary documentation purposes. __________________________________________________________________ 3.1 New Features and Bug fixes in HGFTP V2.7 o The HGFTP client has been modified to support the use of FTP URLs on the command line. A new qualifier, /URL, causes the HGFTP client to treat the specified parameter as a URL that is used to make the FTP connection. The URL format that is acceptable is: ftp://[username[:password]@]host.domain/[directory/[file]] The URL must quoted and must end in either a "/" or a filename. If a filename is supplied, the client will automatically issue a GET/TYPE=IMAGE for the specified file. If a directory name is provided but the filename is omitted, or if both the directory and filename are omitted, the client will make the connection based on the supplied host and, if present, username and password information and enter interactive mode, automatically CDing to the specified directory. If the username is supplied, but a password is omitted, the user will be prompted to enter the password. If both the username and password are omitted, an anonymous connection is established. The following examples are valid URLs: o ftp://username:password@host.domain/ 3-1 Release Note Information for Previous Releases o ftp://username@host.domain/subdir/ o ftp://host.domain/subdir/file.ext A real life example to download the HGFTP kit is: $ ftp/url "ftp://ftp.process.com/vms-freeware/fileserv/mgftp.zip" o The HGFTP server has been modified to allow wildcarded file specifications for RNFR/RNTO commands (rename a file). As long as the specifications are acceptable to LIB$RENAME_FILE, they will be accepted by HGFTP. o The HGFTP client was modified to prevent the estimated time remaining display shown by pressing CTRL-A when transferring a file from being overwritten by the hash marks enabled with the SET HASH command. o The HGFTP listener was modified to support the definition of interface-specific local hostname via a logical name in the HG_FTP_NAME_TABLE of the form: HG_FTP_LOCAL_HOSTNAME_xx_xx_xx_xx where "xx_xx_xx_xx" is the interface IP address. This lets a node support several different virtual servers, with each having its own system name, if desired. o The HGFTP client ALIAS ADD and ALIAS MODIFY commands would sometimes not encrypt the specified password correctly, resulting in incorrect decryptions. This problem has been corrected. o NETLIB V2.3B is now packaged with HGFTP. 3-2 Release Note Information for Previous Releases __________________________________________________________________ 3.2 New Features and Bug fixes in HGFTP V2.6-5 o Some users did not like installing the HGFTP client with SYSPRV for UCX, so the code that sets the buffer sizes was modified to just ignore any errors that occur when trying to set the sizes. A global symbol, HGFTP_UCX_SYSPRV_INSTALL, can be defined in HG_ROOT:[COM]FTP_LOGICALS.COM to tell FTP_STARTUP.COM whether or not the client should be installed with SYSPRV. The default value of this symbol is "1"; setting it to "0" will prevent installing the client with SYSPRV. __________________________________________________________________ 3.3 New Features and Bug fixes in HGFTP V2.6-4 o The setting of the window size was failing under UCX for non-privileged users because setting buffer sizes is considered a privileged operation by UCX. The HGFTP client can now be installed with SYSPRV safely to allow this to work for non-privileged users. In previous versions, the client did not allow for being installed securely. o NETLIB V2.2G is now packaged with HGFTP. __________________________________________________________________ 3.4 New Features and Bug fixes in HGFTP V2.6-3 o The default window size used by HGFTP has been increased from 6144 bytes to 17520. This change should speed up file transfers over some links, in some cases dramatically. For example, transfers over an ISDN may be twice as fast as in previous versions of HGFTP. 3-3 Release Note Information for Previous Releases A new logical, HG_FTP_WINDOW_SIZE, has been added to allow the default window size to be overridden. The logical can be defined in any logical name table, allowing users to override a system default. o Previous versions of HGFTP did not set the DCL symbol $STATUS when COPY/FTP was used and it failed for whatever reason. This has been corrected. Note that DIR/FTP may or may not set an error exit status if a file does not exist-some servers, including the HGFTP server, do not return an error for a DIR of a non-existent file, for example. o When HGFTP was invoked via DIR/FTP, the case of the specified filename was not preserved. This problem has been corrected. __________________________________________________________________ 3.5 New Features and Bug fixes in HGFTP V2.6-2 o Previous versions of HGFTP could be configured to limit the number of active FTP connections, but the startup procedures did not implement it correctly. Even when correctly set up, the FTP listener did not return a valid response (it returned a 421 error string, but it wasn't properly terminated by a carriage-return/linefeed combination, causing most clients to not see the error message). This problem has been corrected. o Added support for a new logical, HG_FTP_MAXIMUM_ SERVERS, the value of which is a number specifying the maximum number of FTP connections that can be established at any one time. o The HGFTP client was modified to report most errors back to DCL when /ERROR=EXIT or ON ERROR EXIT is used, allowing command procedures to check for errors by checking the value of the DCL symbol $STATUS. Not all errors are passed on correctly; this will be corrected in a future release. 3-4 Release Note Information for Previous Releases o Added support for new reply logicals: o HG_FTP_220_REPLY - the greeting displayed by the listener when a client connects o HG_FTP_221_REPLY - the message displayed by the listener and the server when closing a connection The values of these logicals can be either text strings or a string of the form "@file.ext", which causes the specified file to be displayed. o The LDIR command did not handle invalid file specifications properly, resulting in an infinite loop of displayed error messages. This problem has been corrected. __________________________________________________________________ 3.6 New Features and Bug fixes in HGFTP V2.6-1 o Added support for the SIZE command to the client and server. o Modified the routine to transfer a file from the network to the local disk to issue the SIZE command before the transfer. If the remote server supports SIZE, the client will use the size returned as the initial allocation quantity when the file is created, reducing the need to extend the file repeatedly during the transfer. 3-5 Release Note Information for Previous Releases __________________________________________________________________ 3.7 New Features and Bug fixes in HGFTP V2.6 o Increased the throughput performance when transferring files from the network to the local disk. Previous versions of the server and client wrote binary files out one block at a time, resulting in a severe performance penalty. In V2.6, the data is written in 127-block chunks per write. This change has resulted in transfers from the net to the local disk that are 2 to 6 times faster than previous versions. __________________________________________________________________ 3.8 New Features and Bug fixes in HGFTP V2.5-4 o The HGFTP server did not work well with "cluster aliases" implemented by MultiNet and TCPware because it didn't specify the cluster alias when binding sockets for the data connections. This problem has been corrected. o The HGFTP server would generate an access violation if connections to an account were rejected with the REJECT logical. This didn't cause any problems with the session, as the accvio happened during the image rundown, but it did leave an accvio message in the FTP_SERVER.LOG for the account. This problem has been corrected. __________________________________________________________________ 3.9 New Features and Bug fixes in HGFTP V2.5-3 o The HGFTP binaries for OpenVMS Alpha were produced using the Compaq BLISS-32E V1.8 compiler. Previous versions were produced using V1.3. This should result in better optimized code. o The HG_FTP_ACTIVITY log file now includes messages about successful file transfers, which can be useful in gathering statistics. 3-6 Release Note Information for Previous Releases In previous versions of HGFTP, those messages were only generated for the messages STORed by the server, and the message was actually generated before the file was actually transferred. Now, messages are generated for all file transfers by the server. The messages are now created at the end of the transfer, giving accurate delivery times via the record timestamps in the log file. o The DCL commands DIR/FTP and COPY/FTP did not properly handle remote file specs that contained spaces in the file or directory name. This problem has been corrected. o The HGFTP server now plays better with PC browsers (specifically, Netscape and Internet Explorer) when the UNIX directory listing emulation is used. The following changes were made to accomodate these browsers: o Netscape is actually smart enough to recognize that it's talking to a VMS system by checking the output generated in response to the SYST command. Unfortunately, when UNIX emulation was in effect, this caused Netscape to misinterpret the directory listing and display only the returned file names. Now, when the logical HG_ FTP_HIDE_VMS_SYST is defined and UNIX emulation is in effect, the SYST response includes spaces to disguise the fact that it's a VMS system running HGFTP. This causes Netscape to interpret the file names and display file information for each file listed. o When presented with a URL such as "ftp://user:pass@node/dir/", both Netscape and IE will issue the command "CWD /DIR/". In previous versions of HGFTP, this would try to access [DIR] and not the expected [.DIR]. This problem has been fixed. Now, "CWD /DIR/" is interpreted as "CD [.DIR]" for non-ANONYMOUS logins and as "CD [DIR]" for ANONYMOUS logins. 3-7 Release Note Information for Previous Releases o In previous versions of HGFTP running on versions of VMS prior to V7.2, issuing the command "ls -l" would result in the server shutting down the connection. This problem has been corrected (though "-l" still doesn't have any special meaning as it does for some UNIX FTP servers). o The HGFTP listener now truncates usernames at the first invalid character. This change allows the server to ignore usernames set up for firewall access. o In previous versions of HGFTP, the client SPAWN command incorrectly translated the command parameter to lowercase. This problem has been corrected so that the normal DCL case rules apply. o The client commands LCD and LLS (local DIR and local LS) are not documented, but are present. They will be documented in HGFTP V2.6. __________________________________________________________________ 3.10 New Features and Bug fixes in HGFTP V2.5-2 o The HGFTP client did not handle some types of connection failures properly, resulting in IP devices (BG:, INET:) not getting released. o The HGFTP client now shows the full expanded file name on file transfer errors. __________________________________________________________________ 3.11 New Features and Bug fixes in HGFTP V2.5-1 o A logic error in setting the end-of-file byte caused the last block of a file to be lost when the last block transferred was a full 512 bytes. This problem has been fixed. 3-8 Release Note Information for Previous Releases __________________________________________________________________ 3.12 New Features and Bug fixes in HGFTP V2.5 o Passive mode support in the HGFTP server has been reworked to work properly with more clients. In previous versions, the server assumed clients worked like the HGFTP client did in passive mode: the PASV command was sent, the passive connection was made, and then the file transfer command was sent. However, many FTP clients actually send the PASV command and the file transfer command (LIST, STOR, etc.) before establishing the passive connection. With such clients, a race condition existed that would sometimes cause the server to close the connection without transferring some or all of the data. In HGFTP V2.5, the server now handles passive mode properly for both types of connections. o In previous versions of HGFTP, connections that failed to log in for whatever reason (invalid password, invalid account, etc.) and immediately exited the FTP session would cause the HGFTP Listener to die with an access violation. The access violation occurred when the listener tried to send the reply code to the client; it didn't check to be sure the the connection still existed before attempting to send the reply code. This problem has been fixed. o When transferring a binary file from a UNIX or NT system, HGFTP pads the final block with nulls to make an even 512-byte block. There was code present to set the first-free-byte field in the file header, but that code didn't work, which meant that when the file was transferred back to the UNIX or NT system, it would have grown in size to include the padded nulls added by HGFTP. This problem has been fixed; the actual size of the file is now properly maintained by HGFTP. 3-9 Release Note Information for Previous Releases o In HGFTP V2.4, the listener could not be started on multiple nodes of a cluster because the log file was locked by the first process started. The FTP_STARTUP command procedure now defines a node-specific log file for each listener process. __________________________________________________________________ 3.13 New Features and Bug fixes in HGFTP V2.4 o In HGFTP V2.2, the client and server were changed to translate the UNIX directory spec "/" to "SYS$DISK:[000000]". While this is the more correct behavior for anonymous logins, it was usually incorrect for non-anonymous accounts. The client and server will now translate "/" to "SYS$DISK:[000000]" for anonymous logins, and to "SYS$LOGIN:" for non- anonymous logins. o In previous versions of HGFTP, the HGFTP Listener was unable to do remote hostname lookups after a connection was established when running under MultiNet and Pathway. This version of HGFTP uses the UCX-emulation provided by each to do the DNS lookup so that the name of the remote host can be written to the log files. o On UCX and TCPware systems, defining HG_FTP_LOCAL_ HOSTNAME had no effect, because the listener did a second lookup of the host name. This problem has been fixed. o The HGFTP Listener no longer creates a new activity log file each time it starts. Instead, it appends records to the existing file. o The HG_FTP_ACTIVITY log file now includes messages about successful file transfers, which can be useful in gathering statistics. o The activity log now differentiates between servers and anonymous servers with the label "ANONYMOUS- Server". 3-10 Release Note Information for Previous Releases o The FTP_SERVER.EXE image is now installed with NETMBX and TMPMBX, in addition to SYSPRV and PHY_ IO. Previously, it was assumed that the ANONYMOUS account had at least NETMBX and TMPMBX. o Several memory leaks in the HGFTP Listener have been fixed. The leaks could eventually have caused to the listener to die with an access violation. __________________________________________________________________ 3.14 New Features and Bug fixes in HGFTP V2.3-1 o When doing UNIX ls emulation, resource identifiers as owners weren't handled properly, resulting in an invalid display. This problem has been corrected. __________________________________________________________________ 3.15 New Features and Bug fixes in HGFTP V2.3 o The HGFTP Server can now generate directory listings in a UNIX-style format, for greater compatibility with browsers that think the world only runs UNIX. When the logical HG_FTP_DO_UNIX_LS is defined, the HGFTP server will produce directory listings similar to those generated by UNIX servers if the specified path is in a UNIX-style format. By equating the logical with the value "ALWAYS", you can force the server to always generate UNIX-style listings. o The HGFTP Listener now checks for the logical HG_FTP_LOCAL_HOSTNAME. If that's defined, the equivalence string is used as the system name in the 220 greeting displayed to the client. A generic name like "ftp.madgoat.com" can be displayed instead of the actual system name. o The HGFTP client ATTACH command now supports the /PARENT qualifier. 3-11 Release Note Information for Previous Releases __________________________________________________________________ 3.16 New Features and Bug fixes in HGFTP V2.2-6 o The HGFTP Server now accepts subdirectory names in the Netscape string "CD [.~user.subdir]" format. See the notes for V2.2-5 below for more information. __________________________________________________________________ 3.17 New Features and Bug fixes in HGFTP V2.2-5 o The HGFTP Server has been modified to check for the existence of the logical HG_FTP_ALLOW_PRIV_ PORT. If that logical is defined /SYSTEM/EXEC, then privileged ports will be accepted on the server PORT commands. (See the changes made in V2.2-2 for information about this security risk.) o Netscape tries to be helpful and converts references to "CD ~user" to "CD [.~user]". The HGFTP Server now recognizes this special case and converts it to "~user". o In previous versions of HGFTP V2.2, pressing CTRL-A could generate a "divide by zero fault" if no data had been transferred yet. This problem has been corrected. __________________________________________________________________ 3.18 New Features and Bug fixes in HGFTP V2.2-4 o To protect systems against the CERT FTP Bounce attack, the HGFTP server no longer allows connections to 3rd-party machines via the server PORT command. 3-12 Release Note Information for Previous Releases __________________________________________________________________ 3.19 New Features and Bug fixes in HGFTP V2.2-3 o Pressing CTRL-A while transferring a file will now show the estimated time remaining for a transfer (if the total file size is known, meaning on all PUTs and on GETs transferred via STRU VMS or when the total file size can be determined). o Timezone support in the FTP server has been updated to include support for the SYS$TIMEZONE_DIFFERENTIAL logical. o The HGFTP server didn't properly transfer "Stream" format files in BINARY mode (it forced those files to ASCII mode). This problem has been corrected. __________________________________________________________________ 3.20 Bug fixes in HGFTP V2.2-2 o The HGFTP client did not support the /PORT qualifier on the OPEN command, though it did support it from the DCL command line. The OPEN command now accepts /PORT=value to specify an alternate FTP port. o A potential security hole existed in the FTP server that could have allowed attackers to gain illegal access to RSH/RLOGIN ports. The server no longer accepts port numbers lower than 1024 on the PORT command. o Another CMUIP access violation in the HGFTP listener has been fixed. __________________________________________________________________ 3.21 Bug fixes in HGFTP V2.2-1 o The HGFTP listener would die with a "Network partner disconnected logical link" error under CMUIP whenever an FTP session disconnected. This problem has been corrected. 3-13 Release Note Information for Previous Releases __________________________________________________________________ 3.22 New Features in HGFTP V2.2 o Support has been added for NETLIB V2. Previous versions of HGFTP worked with NETLIB V2 via the V1 compatibility routines in NETLIB V2. However, an incompatibility between those routines and HGFTP would sometimes cause the HGFTP listener to exit when some connections timed out. This problem has been corrected. o Support has been added for passive-mode transfers. Passive-mode transfers are typically used when the FTP client and server are separated by a firewall. The client now includes the commands SET PASSIVE and SHOW PASSIVE, and the server now supports the PASV command. o The command procedure FTP_GET_CONNECTION_INFO.COM now receives the local host name and IP address, in addition to the remote host name and address. This feature may be useful to sites with machines that have multiple addresses. o The HGFTP client now supports being called from COPY/FTP and DIR/FTP. All qualifiers are supported except COPY/FTP/FDL. When HGFTP is started, the logicals OPENVMS$FTP and OPENVMS$FTPDIR (used by COPY/FTP and DIR/FTP, respectively) are automatically defined to point to the HGFTP client. o The HGFTP Server now supports the directory specification "~username" to access the default login directory for a user on the system. o By defining the logical HG_FTP_TILDE_ANONDIR, you can allow users on the local system to make files accessible to anonymous FTP users from special subdirectories under their login directories. If the logical is not defined, anonymous FTP users are not allowed to use the "~user" format. 3-14 Release Note Information for Previous Releases For example, you can define the logical to be equal to "AFTP". Once defined, users can create [.AFTP] subdirectories. Anonymous FTP users could then access files in each user's anonymous FTP directory by using a command like "CD ~USER". This support provides anonymous FTP access analogous to the serving of user-based World-Wide Web HTML pages. o The HGFTP client includes the new commands DEFINE/KEY, DELETE/KEY, and SHOW KEY that let you define keys to execute commands. DEFINE/KEY commands can be placed in an initialization file to have them defined automatically when users run the HGFTP client. o The HGFTP client commands PUT/RECURSIVE and MPUT/RECURSIVE work now. Though /RECURSIVE was documented in previous versions, it was ignored by the client. It now will cause the specified subdirectory tree to be recreated and properly populated on the remote node. o The output displayed when transferring a file and pressing CTRL-A or CTRL-T now shows the total number of blocks to be transferred. __________________________________________________________________ 3.23 Bugs Fixed in HGFTP V2.2 o The HGFTP client qualifier /QUIET disabled most messages, but still allowed replies from the remote system to be displayed. /QUIET/NOREPLY now prohibits the display of all messages, including replies. o The CTRL-A and CTRL-T transfer status display in the HGFTP client didn't work if HGFTP was executed from within a command procedure. This problem has been corrected. 3-15 Release Note Information for Previous Releases o Several obscure bugs in the HGFTP Listener have been corrected. These bugs would occasionally cause the listener to die with an access violation. o In previous versions of HGFTP, the client and server would translate the UNIX directory spec "/" to "SYS$LOGIN:". The spec is now correctly translated to "SYS$DISK:[000000]" when it appears by itself. o A bug in the calculation of the percentage in the CTRL-A status line could cause incorrect percentages to be displayed when transferring extremely large files. This problem has been corrected. o The FTP client commands GET and PUT did not correctly handle the global /RETAIN setting. This problem has been corrected. __________________________________________________________________ 3.24 New Features and Bug Fixes from Previous Releases The following new features and bug fixes were added in V2.1-2. o The FTP listener will now send connection information (the remote host name and IP address) to be read by the LOGIN.COM of a server process. This information can be read by executing HG_ ROOT:[COM]FTP_GET_CONNECTION_INFO.COM, which will set the global symbols HOST_NAME and HOST_IP with the host name and IP address. Note: The remote host name will not be returned if the underlying TCP/IP transport on the server's system is Multinet or WIN/TCP. The IP address will be returned in its place. o Added the HG_FTP_WILD_VERSION logical name which controls the default filespec for the LIST FTP server command. If HG_FTP_WILD_VERSION is defined as "T" or "Y", then a default filespec of *.*;* will be used, i.e., all versions of the files requested 3-16 Release Note Information for Previous Releases will be displayed. Otherwise, the normal default filespec of *.*; will be used. o Fixed a bug that caused LIST and NLST commands to never complete in some cases under CMU-Tek TCP/IP. o Fixed a bug in the FTP client's error handling. Errors that were detected before executing any commands were causing an infinite loop of error messages. o Fixed the FTP client's /VERIFY output. This output was being lost when SYS$OUTPUT was redefined to point to a file. The following new features and bug fixes were added in V2.1-1. o Support for listening to a port other than the default FTP port (21) was added to FTP_LISTENER. The HG_FTP_LISTENER_PORT logical name may be used to specify an alternate port. This logical name should be defined /SYSTEM/EXECUTIVE. o Fixed a bug in the handling of HG_FTP_DIRS values of the form "dev:[000000...]." Directory specifications of this form will now work. o Stream LF files were being sent "as is" during STRU F, TYPE A transfers (instead of being sent as a series of CR/LF delimited lines). This problem has been corrected. The following new features and bug fixes were added in V2.1. o The FTP client now allows the user to define aliases for remote hosts. In addition to the host name, an alias entry may include remote login information. 3-17 Release Note Information for Previous Releases o Wildcarded directory names are now supported for the HG_FTP_DIRS and HG_FTP_user_DIRS logical names. For example, the following are now acceptable directory values: DISK:[*...], DISK:[DIR*.SUB%], and DISK:[DIR.SUB*...]. o The HG_FTP_QUOTE_PATHNAME logical was added to control whether the pathname is quoted in 257 replies. 257 replies are sent for the PWD and MKD server commands. For example: >PWD <257 "SYS$SYSROOT:[SYSHLP]" is current directory. The quotes in the reply are not recognized by some FTP clients. They can be disabled, on a per-user basis, by defining HG_FTP_QUOTE_PATHNAME as "F" or "N". o A bug that caused the FTP server to sometimes disconnect during LIST and NLST commands has been corrected. o The FTP server's installed privileges were remaining enabled if they were authorized for the user. Installed privileged are now disabled if they were not enabled at login time. The following new features and bug fixes were added in V2.0-3. o NETMBX privilege is now enabled before attempting to connect to a remote host. Previously, the FTP client did not enable it, so installing the client with NETMBX had no effect. o Some FTP clients do not switch from STRU O VMS before attempting a directory listing, which would cause the FTP server to complain about the STRU. This restriction has been removed from the FTP server. o Nested command procedure calls are now supported. 3-18 Release Note Information for Previous Releases o The speed of local and remote directory listings was improved. o The FTP client will now prompt for a username after connecting to a remote host if HG_FTP_USER_PROMPT is defined. o The FTP server will now display the contents of .MESSAGE files if present when changing directories. The following new features and bug fixes were added in V2.0-2. o A bug that caused the HG_FTP_ANONYMOUS_DIRS logical to be ignored has been corrected. Previously, the logical was ignored if the FTP log files could not be created. o If the remote host name exceeded 28 characters in length, the FTP client would not accept commands from the user. This has been corrected. o The two-line opening greeting from the FTP listener has been changed to a single line to allow Mosaic to work with MadGoat FTP servers. o The LOGIN and USER commands were modified to accept /ACCOUNT as a qualifier instead of a parameter. The following new features and bug fixes were added in V2.0-1. o A bug in the installation procedure prevented the installation of both sources and executables. This has been corrected. o FTP_STARTUP.COM now starts NETLIB, if it hasn't already been started. o A bug in the client that caused access violations on CTRL-C for some commands has been corrected. o The HELP command was looking for the wrong help library. This has been corrected. (It worked if the HG_FTP_HELP logical was defined.) 3-19 Release Note Information for Previous Releases o The client command PUT would sometimes fail with "record too large for user's buffer" when Stream_LF files were transferred. This has been corrected. HGFTP V2.0 was the first release of the MadGoat Software version of the FTP client and server. HGFTP began life as the FTP client and server that were distributed with CMU-Tek TCP/IP, a mostly- free TCP/IP implementation written by Tektronix and Carnegie-Mellon University and supported by CMU. When the code was made freely available, support was picked up primarily by Henry Miller and John Clement. HGFTP is based on John and Henry's CMU FTP V3.1. The MadGoat version works with the NETLIB TCP/IP Interface Library. The NETLIB port was done by Darrell Burkhead, who based some of the changes on a much earlier UCX port (known as CRUX) done by Matt Madison. The OpenVMS Alpha port was done by Hunter Goatley. NETLIB V2.2F is included with the HGFTP distribution. NETLIB is written by Matt Madison and is also a MadGoat Software product. HGFTP is currently maintained by Hunter Goatley (goathunter@goatley.com). The HGFTP software contains numerous changes, enhancements, and bug fixes over the original CMU version. 3-20 _______________________________________________________ 4 Known Bugs and Restrictions This chapter describes the known bugs and restrictions of HGFTP V3.2-4. o When using CTRL-C to abort an action, the FTP client may or may not properly reset the STRU setting. For example, when connected to a server that support STRU VMS, the client switches to STRU FILE for directory listings and automatically switches back to STRU VMS when the command has completed. IF CTRL-C is used to abort the listing, the structure setting may not be reset to STRU VMS, though the remote server is reset. To correct this, simply issue the SET STRUCTURE VMS command before any other command. o When PUTting to a remote server and you specify the same file name as the source and destination file names, the case of the destination name is lost. The case is maintained as long as the file names are different. o The HGFTP server cannot determine the remote host name for logging purposes when the underlying TCP/IP transport is MultiNet or WIN/TCP. This is because of an AST implementation conflict between these transports and the HGFTP server. The only effect is that FTP_SERVER.LOG files will show only the numeric IP address for the remote host. o If you are running HGFTP under CMU-Tek, you will need to make sure that the MAXBUF SYSGEN parameter is set to at least 8300. 4-1 Known Bugs and Restrictions o If you are running HGFTP under DEC TCP/IP Services for VMS v3.1, you may need to define a couple of logical names by hand. UCX$INET_HOST should be defined as the hostname of the local system; UCX$INET_DOMAIN should be defined as the local domain name. Combining UCX$INET_HOST and UCX$INET_ DOMAIN should make the FQDN (Fully Qualified Domain Name) for the local system. For example, with an FQDN of wkuvx1.wku.edu, you could define UCX$INET_ HOST as wkuvx1 and UCX$INET_DOMAIN as wku.edu. If UCX$INET_HOST and UCX$INET_DOMAIN are not defined correctly, you will need to redefine them at system startup. They should be defined /SYSTEM/EXECUTIVE_ MODE. 4-2 _______________________________________________________ 5 Problem Reports MadGoat Software has set up the following electronic mailing lists for discussions and support of its products. __________________________________________________________________ 5.1 Info-MadGoat@MadGoat.com Discussion of MadGoat Software products by users and MadGoat developers. To subscribe, send a mail message to: Info-MadGoat-Request@MadGoat.com with the word SUBSCRIBE in the first line of the body of the message. __________________________________________________________________ 5.2 MadGoat-Announce@MadGoat.com Announcements of new releases and new products from MadGoat. To subscribe, send a mail message to: MadGoat-Announce-Request@MadGoat.com with the word SUBSCRIBE in the first line of the body of the message. __________________________________________________________________ 5.3 MadGoat-Bugs@MadGoat.com Address for reporting bugs in MadGoat Software products. Please include the name of the package and version in the subject header of the message, so the report can be more easily directed to the appropriate developer. 5-1 Problem Reports __________________________________________________________________ 5.4 MadGoat-Register@MadGoat.com Address for registering your use of MadGoat Software. Registration of your installation is at your discretion and is used by MadGoat Software only to the determine the size of the user base for each product and the future directions of the products. To register, simply mail a message to MadGoat- Register@MadGoat.com with the following information: Installer's name Company name and address System(s) on which the MadGoat software is running Which products you're using Any comments and/or suggestions you might have Also, you can find the MadGoat Software web page using the URL "http://www.madgoat.com/". 5-2