3Y MGFTP026.A$ MGFTP026.AnBACKUP/INTERCHANGE/BLOCK=8192 KITINSTAL.COM,MG_KIT:[MGFTP]MGFTP026.RELEASE_NOTES MG_KIT:[MGFTP]MGFTP026.A/SAVE GOATHUNTER i V7.2 _CAESAR:: _$1$DKA100: V7.2  *[MGFTP.KIT]KITINSTAL.COM;38+,xn .$/ 4d$"-~J0123KPWO#56F"R7T89GHJ$! [FTP.KIT]KITINSTAL.COM$!7$! KITINSTAL procedure for installing MadGoat FTP V2.6V$! Copyright 1994, 2000 by MadGoat Software & Hunter Goatley. All rights reserved.$!$ mgftp_version = "V2.6-5"$ copyright_years = "1994,2000" $!-----------*$ ON CONTROL_Y THEN VMI$CALLBACK CONTROL_Y$ ON WARNING THEN EXIT $STATUS2$ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO FTP_INSTALL$ EXIT VMI$_UNSUPPORTED$!$ FTP_INSTALL:$ IF P2 THEN SET VERIFY$ ftp_say := write sys$output$ link := link/nouserlibrary$!.$! Determine architecture type (VAX or Alpha)$!!$ IF f$getsyi("HW_MODEL").lt.1024$ THEN $ ftp_vax = 1$ ftp_alpha = 0$ netlib_vax = 1$ netlib_axp = 0$ netlib_saveset = "C" $ sysexe = ""$ ftp_reqd_vmsver = "V5.0"$ ftp_reqd_vmsver_old = "050"C$ vmi$callback check_vms_version ftp_vmsverok 'ftp_reqd_vmsver_old'$ if .not. ftp_vmsverok$ then%$ vmi$callback message e vmsver -@ "This product requires VMS version ''ftp_reqd_vmsver' to run."$ exit VMI$_FAILURE$ endif$ obj = ".OBJ"$ opt = ".OPT"$ olb = ".OLB"$ ELSE $ ftp_vax = 0$ ftp_alpha = 1$ netlib_vax = 0$ netlib_axp = 1$ netlib_saveset = "D"$ sysexe = "/SYSEXE"$ obj = ".ALPHA_OBJ"$ opt = ".ALPHA_OPT"$ olb = ".ALPHA_OLB"$ ENDIF$!$!++ $! checks$!--4$ VMI$CALLBACK CHECK_NET_UTILIZATION FTP_ENOUGH 5000,$ IF .NOT. ftp_ENOUGH THEN EXIT VMI$_FAILURE"$ if f$trnlnm("FTP_INSTALL_DEBUG")$ then ftp_debug = 1$ else ftp_debug = 0$ endif$!++$! purge and IVP$!--$ type SYS$INPUT $ ftp_say ""<$ ftp_say " MadGoat FTP ", mgftp_version, " Installation" $ ftp_say ""Q$ ftp_say " Copyright ''copyright_years' MadGoat Software & Hunter Goatley."$$ ftp_say " All rights reserved."C$ ftp_say " Redistribution for no commercial gain is permitted." $ ftp_say ""$ VMI$CALLBACK SET PURGE ASK$ VMI$CALLBACK SET IVP NO$! *$ ftp_cluster = f$getsyi("CLUSTER_MEMBER")$ if FTP_CLUSTER$ then type sys$input# Mixed VAX and Alpha VMSclusters! -----------------------------E This system is part of a VMScluster. If this VMScluster includesH both VAX and Alpha systems that will share a MadGoat directory tree,D it will be necessary to install MadGoat FTP twice: once on a VAXH system and once on an Alpha system. It is only necessary to installB the FULL MadGoat FTP kit on one type of system (VAX or Alpha).@ The dual installation is required because the FTP images areE linked during installation. However, when installing MadGoat FTPG on the second system, you may elect to install only the executablesG to avoid the need to reinstall files that are platform-independent.G The full MadGoat FTP installation MUST be installed from one of the systems for it to work.&$ VMI$CALLBACK ASK FTP_Alpha_AND_VAX -B "Does this VMScluster include both VAX and Alpha systems" "NO" B$ if .not.ftp_alpha_and_vax$ then ftp_install_exe_only = 0$ goto FTP_ASK_FOR_DIR$ endif$ type sys$inputJ MadGoat FTP for Alpha and for VAX can share a common MadGoat directoryG tree, if desired. When supplying MadGoat directory information, beD sure a common disk is specified. Avoid using logical names likeG SYS$SYSDEVICE, because the two types of systems cannot share system disks!H$! If you elect to install NETLIB, you should specify that the NETLIBG$! images should be installed in MADGOAT_ROOT:[EXE] for VAXen and in1$! MADGOAT_ROOT:[ALPHA_EXE] for Alpha systems.$!'$ VMI$CALLBACK ASK FTP_Alpha_AND_VAX1 -M "Will the VAX and Alpha systems share a common MadGoat directory" "YES" B$ if .not.ftp_alpha_and_vax1$ then ftp_install_exe_only = 0$ goto FTP_ASK_FOR_DIR$ endif$! $ if ftp_vax$ then ftp_system_type = "VAX"$ ftp_other_type = "Alpha"$ ftp_article = "an" $ else ftp_system_type = "Alpha"$ ftp_other_type = "VAX"$ ftp_article = "a"$ endifO$ clustquest = f$fao("Has MadGoat FTP !AS already been installed on !AS !AS "+-G "system in this cluster", mgftp_version, ftp_article, ftp_other_type)<$ VMI$CALLBACK ASK FTP_Alpha_AND_VAX2 "''clustquest'" "NO" B$ if ftp_alpha_and_vax2.$ then VMI$CALLBACK ASK FTP_INSTALL_EXE_ONLY -L "Do you wish to install only the ''ftp_system_type' executables" "YES" B$ else ftp_install_exe_only = 0$ endif$!2$ if ftp_alpha_and_vax2 .and. ftp_install_exe_only$ then ftp_say ""J$ ftp_say " Only the ''ftp_system_type' executables will be installed" $ ftp_say ""@$ VMI$CALLBACK ASK ftp_alpha_and_vax3 "Is this correct" "YES" B;$ if .not.ftp_alpha_and_vax3 then ftp_install_exe_only = 0$ endif$ else !IF ftp_cluster$ ftp_install_exe_only = 0$ endif !IF ftp_cluster$!$ FTP_ASK_FOR_DIR:$!++$! ask questions$!--$ type sys$input9 Configuring Base MadGoat FTP Directories and Logicals9 -----------------------------------------------------F MadGoat software is installed in its own rooted directory to avoidI mixing MadGoat files with normal VMS files. The directory can reside on any disk.I THERE ARE NO FILES COPIED TO SYS$SYSTEM, SYS$LIBRARY, etc. (The onlyF file copied to a VMS directory is the Release Notes file, which is copied to SYS$HELP.):$ IF f$trnlnm("MADGOAT_ROOT","LNM$SYSTEM_TABLE") .eqs. ""1$ then ftp_def_root = "SYS$SYSDEVICE:[MADGOAT.]">$ if ftp_debug then say "DEBUG - Using default directory spec"Q$ else ftp_def_root = f$parse("MADGOAT_ROOT:[000000]",,,"DEVICE","NO_CONCEAL")+-B f$parse("MADGOAT_ROOT:[000000]",,,"DIRECTORY","NO_CONCEAL"),$ ftp_def_root = ftp_def_root - "[000000]">$ if ftp_debug then say "DEBUG - Using defined directory spec"$ endif+$ ftp_def_root = ftp_def_root - ".]" + "]"$ VMI$CALLBACK ASK ftp_root -A "Enter the top-level directory for the MadGoat root directory" - "''ftp_def_root'";$ ftp_root = f$parse(ftp_root,,,"DEVICE","NO_CONCEAL") + -- f$parse(ftp_root,,,"DIRECTORY","NO_CONCEAL")$ y = f$locate(".][",ftp_root)$$ if y.ne.f$length(ftp_root) then -) ftp_root = f$extract(0,y+1,ftp_root) + - f$extract(y+3,256,ftp_root)$ ftp_root = ftp_root - "]"9$ define madgoat_root 'ftp_root'.]/translation=concealed$ if ftp_alpha0$ then ftp_exe_dir = "madgoat_root:[alpha_exe]"*$ else ftp_exe_dir = "madgoat_root:[exe]"$ endif$!?$ if ftp_debug then say "DEBUG - Creating top-level directory"0$ IF F$SEARCH("''FTP_ROOT']*.*").eqs."" then -2$ VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"4$ IF F$SEARCH("''FTP_ROOT']EXE.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.EXE] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)":$ IF F$SEARCH("''FTP_ROOT']ALPHA_EXE.DIR").eqs."" then -; VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.ALPHA_EXE] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"$!%$! Find out what should be installed$!=$ if ftp_install_exe_only then goto ftp_ask_about_dcl_command$ type sys$input$ Selecting MadGoat FTP Components$ ------------^ MGFTP026.Axn ~JGFTP.KIT]KITINSTAL.COM;38d$--------------------G The MadGoat FTP client and server are normally installed by linkingJ the object files packed with the kit. The installation will also giveD you a chance to add the FTP DCL command and on-line help to your system.J The MadGoat FTP sources are also provided. You can either install theE products and the sources, or you can install the sources only and rebuild them by hand.H If you only want to install the sources and want to skip the product5 installations, enter YES to the following prompt.$ VMI$CALLBACK ASK - ftp_do_sources_only -< "Do you want to install ONLY the sources for MadGoat FTP" - NO B$ if ftp_do_sources_only$ then say ""?$ VMI$CALLBACK MESSAGE I PSKIP "Skipping product installations"$ ftp_do_sources = 1$ ftp_do_links = 0$ goto Start_Installing$ endif$ type SYS$INPUTJ The answer to the following question will determine whether the source> files for the MadGoat FTP client and server are installed.$ VMI$CALLBACK ASK - ftp_do_sources -7 "Do you want to install the sources for MadGoat FTP" - YES B$ type SYS$INPUTF Documentation for MadGoat FTP comes in Bookreader, PostScript, andH ASCII text file formats. If you elect to install the documentation,3 the files will be placed in MADGOAT_ROOT:[DOC].$ VMI$CALLBACK ASK - ftp_do_docs -= "Do you want to install the documentation for MadGoat FTP" - YES B$ write sys$output ""$ ftp_ask_about_dcl_command:$ type SYS$INPUT@ The MadGoat FTP client DCL command, FTP, can be added to theH system-wide DCLTABLES, making the command available to all users, or+ it can be defined as a foreign command. $ VMI$CALLBACK ASK ftp_do_cmd -3 "Do you want to add the FTP command to DCLTABLES"- YES B $ ftp_say ""$ VMI$CALLBACK ASK - ftp_do_help -A "Do you want to add the MadGoat FTP client help to a library" - YES - B$ if ftp_do_help$ then type SYS$INPUTF This installation updates the help library so that the DCL commandG "$ HELP FTP" will provide information about the MadGoat FTP client.D There are several help libraries into which the help file can be placed. Some of them are:' SYS$SYSROOT:[SYSHLP]HELPLIB.HLB>$ if f$trnlnm("HLP$LIBRARY","LNM$SYSTEM_TABLE").nes."" then -I write sys$output " ''f$trnlnm("HLP$LIBRARY","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_1","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_1","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_2","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_2","LNM$SYSTEM_TABLE")'"@$ if f$trnlnm("HLP$LIBRARY_3","LNM$SYSTEM_TABLE").nes."" then -K write sys$output " ''f$trnlnm("HLP$LIBRARY_3","LNM$SYSTEM_TABLE")'"$ write sys$output """$ VMI$CALLBACK ASK ftp_help_lib -= "To which library should MadGoat FTP client help be added" -# "SYS$SYSROOT:[SYSHLP]HELPLIB.HLB" 7$ ftp_help_lib = f$parse(ftp_help_lib,"SYS$HELP:.HLB")$ else ftp_help_lib = ""$ endif$! $! Check on NETLIB$!E$ ftp_netlib_exists = f$search("NETLIB_DIR:NETLIB_SHRXFR.EXE").nes.""$ if .not.ftp_netlib_exists$ then type sys$Input9 The MadGoat FTP software requires the NETLIB library.$ ftp_do_netlib = 1$ else type sys$inputA A version of the NETLIB library for TCP/IP support is already installed on this system./ MadGoat FTP requires NETLIB V2.0 or higher.$ VMI$CALLBACK ASK - ftp_do_netlib -4 "Do you want to install the NETLIB V2.2 library" - YES - B$ endif$!$! $ IF ftp_do_netlib$ THEN"$ VMI$CALLBACK RESTORE_SAVESET BB$! Make sure NETLIB's KITINSTAL, if present, doesn't override oursW$ IF F$SEARCH("VMI$KWD:KITINSTAL.COM;-1") .NES. "" THEN DELETE VMI$KWD:KITINSTAL.COM;$ TYPE SYS$INPUT:5 Now installing NETLIB library for TCP/IP support.D$ FTP_NETLIB_RELNOT = F$SEARCH ("VMI$KWD:NETLIB%%%.RELEASE_NOTES")!$ IF FTP_NETLIB_RELNOT .NES. ""$ THENA$ FTP_NETLIB_RELNOT = F$PARSE (FTP_NETLIB_RELNOT,,,"NAME") +-7 F$PARSE (FTP_NETLIB_RELNOT,,,"TYPE")K$ VMI$CALLBACK PROVIDE_FILE FTP_OK 'FTP_NETLIB_RELNOT' VMI$ROOT:[SYSHLP]?$ FTP_NETLIB_PRODNAME = F$PARSE (FTP_NETLIB_RELNOT,,,"NAME");$ FTP_NETLIB_PRODVER = FTP_NETLIB_PRODNAME - "NETLIB"G$ FTP_NETLIB_VER = "V" + F$EXTRACT (0,2,FTP_NETLIB_PRODVER) + "." +-, F$EXTRACT (2,-1,FTP_NETLIB_PRODVER)6$ IF F$EXTRACT (1,1,FTP_NETLIB_VER) .EQS. "0" THEN-. FTP_NETLIB_VER = FTP_NETLIB_VER - "0"&$ VMI$CALLBACK MESSAGE I NETLRNOT -O "Release notes for NETLIB ''FTP_NETLIB_VER' have been copied to SYS$HELP."$ ELSE&$ FTP_NETLIB_PRODNAME = "NETLIB022" $ ENDIF"$ define netlib_oem_install true1$ VMI$CALLBACK RESTORE_SAVESET 'netlib_saveset'"$ FTP_SAVE_PRODUCT = VMI$PRODUCT%$ VMI$PRODUCT = FTP_NETLIB_PRODNAME$ @VMI$KWD:NETLIB_INSTALL"$ VMI$PRODUCT = FTP_SAVE_PRODUCT$ deassign netlib_oem_install.$ DEFINE NETLIB_SHRXFR VMI$KWD:NETLIB_SHRXFR5$ IF F$SEARCH("VMI$KWD:NETLIB_SHRXFR.EXE") .NES. ""$ THEN2$ DEFINE NETLIB_SHRXFR VMI$KWD:NETLIB_SHRXFR$ ELSE5$ DEFINE NETLIB_SHRXFR NETLIB_DIR:NETLIB_SHRXFR $ ENDIF$!$ ELSE1$ DEFINE NETLIB_SHRXFR NETLIB_DIR:NETLIB_SHRXFR$ ENDIF$!$ Start_Installing:$ type SYS$INPUTJ No further questions will be asked. The MadGoat FTP installation willI now continue for 2 to 15 minutes, depending on your type of media and the system configuration.4$ IF F$SEARCH("''FTP_ROOT']COM.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.COM] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"5$ IF F$SEARCH("''FTP_ROOT']DATA.DIR").eqs."" then -6 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.DATA] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"5$ IF F$SEARCH("''FTP_ROOT']LOGS.DIR").eqs."" then -6 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.LOGS] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"4$ IF F$SEARCH("''FTP_ROOT']DOC.DIR").eqs."" then -5 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.DOC] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"5$ IF F$SEARCH("''FTP_ROOT']HELP.DIR").eqs."" then -6 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.HELP] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"8$ IF F$SEARCH("''FTP_ROOT']SOURCES.DIR").eqs."" then -9 VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.SOURCES] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"<$ IF F$SEARCH("''FTP_ROOT'.SOURCES]FTP.DIR").eqs."" then -= VMI$CALLBACK CREATE_DIRECTORY USER 'FTP_ROOT'.SOURCES.FTP] -0 "/OWNER=[1,4]/PROT=(S:RWE,O:RWE,G:RE,W:E)"$!$! Provide the files$!7$ if ftp_install_exe_only then ftp_do_sources_only = 07$ if ftp_do_sources_only then goto FTP_INSTALL_SOURCES!$ VMI$CALLBACK RESTORE_SAVESET E:$ if ftp_debug then say "DEBUG - Doing FTP image install"9$ VMI$CALLBACK MESSAGE I LINKING "Linking image FTP...."N$ LINK/NOTRACE/EXE=VMI$KWD:FTP.EXE VMI$KWD:FTP'OPT'/OPTION,FTP.VERSION/OPTION;$ VMI$CALLBACK PROVIDE_IMAGE FTP_TMP FTP.EXE 'ftp_exe_dir'B$ VMI$CALLBACK MESSAGE I LINKING "Linking image FTP_LISTENER...."`$ LINK/NOTRACE/EXE=VMI$KWD:FTP_LISTENER.EXE VMI$KWD:FTP_LISTENER'OPT'/OPTION,FTP.VERSION/OPTIOND$ VMI$CALLBACK PROVIDE_IMAGE FTP_TMP FTP_LISTENER.EXE 'ftp_exe_dir'@$ VMI$CALLBACK MESSAGE I LINKING "Linking image FTP_SERVER...."d$ LINK/NOTRACE'SYSEXE'/EXE=VMI$KWD:FTP_SERVER.EXE VMI$KWD:FTP_SERVER'OPT'/OPTION,FTP.VERSION/l MGFTP026.Axn ~JGFTP.KIT]KITINSTAL.COM;38d$\H OPTIONB$ VMI$CALLBACK PROVIDE_IMAGE FTP_TMP FTP_SERVER.EXE 'ftp_exe_dir'C$ if ftp_debug then say "DEBUG - Updating library ''ftp_help_lib'"$ if ftp_do_help then - VMI$CALLBACK UPDATE_LIBRARY - VMI$ - 'ftp_help_lib' - HELP - "/REPLACE" - VMI$KWD:FTP_COMMAND.HLP8$ if ftp_debug then say "DEBUG - Providing FTP command"$ if ftp_do_cmd then -2 VMI$CALLBACK PROVIDE_DCL_COMMAND VMI$KWD:FTP.CLD-$ if ftp_install_exe_only then goto FTP_DONE:$ if ftp_debug then say "DEBUG - Providing startup files"6$ VMI$CALLBACK PROVIDE_FILE "" FTP_COM_FILES.TXT "" T$ write sys$output ""$ if ftp_do_docsE$ then VMI$CALLBACK MESSAGE I INSTDOC "Installing documentation...."$ write sys$output "" $ VMI$CALLBACK RESTORE_SAVESET F$ write sys$output ""$ endif<$!$ if ftp_debug then say "DEBUG - Providing RELEASE_NOTES"?$!$ VMI$CALLBACK PROVIDE_FILE FTP_TMP MGFTP020.RELEASE_NOTES -$! 'ftp_root'.DOC]:$ if ftp_debug then say "DEBUG - Providing FTP_DOC_FILES"J$ if ftp_do_docs then VMI$CALLBACK PROVIDE_FILE "" FTP_DOC_FILES.TXT "" TJ$ VMI$CALLBACK PROVIDE_FILE FTP_TMP MADGOAT_FTP_HELP.HLB 'ftp_root'.HELP]E$ VMI$CALLBACK PROVIDE_FILE FTP_TMP FTP_COMMAND.HLP 'ftp_root'.HELP]:$ VMI$CALLBACK PROVIDE_FILE FTP_TMP FTP.CLD 'ftp_exe_dir'$ FTP_INSTALL_SOURCES:$ if ftp_do_sources@$ then VMI$CALLBACK MESSAGE I INSTDOC "Installing sources...."$ write sys$output ""!$ VMI$CALLBACK RESTORE_SAVESET G$ write sys$output ""6$ if ftp_debug then say "DEBUG - Providing SRC_FILES"6$ VMI$CALLBACK PROVIDE_FILE "" FTP_SRC_FILES.TXT "" T$ endif+$ if ftp_do_sources_only then goto FTP_DONEG$ type SYS$INPUTJ To install the MadGoat FTP images and define the MADGOAT_ROOT logical," execute the following command.I To automate this procedure at system startup, you should also add theS: following line to the system startup command procedure< (SYSTARTUP_V5.COM or SYSTARTUP_VMS.COM in SYS$MANAGER:).B$ write sys$output " $ @''ftp_root'.COM]FTP_STARTUP.COM"$ type SYS$INPUTC If you do not want to run the MadGoat FTP server, then use this  command instead:N$ write sys$output " $ @''ftp_root'.COM]FTP_STARTUP.COM CLIENT_ONLY"$ write sys$output ""v$!++$! done$!-- $ FTP_DONE:l$ EXIT VMI$_SUCCESSl$ delete_file : SUBROUTINE2$ VMI$CALLBACK FIND_FILE FTP_TEMP 'p1' "" S found8$ IF found .eqs. "S" then VMI$CALLBACK DELETE_FILE 'p1'$ exitc$ ENDSUBROUTINEron ''ftp_reqd_vmsver' to run."$ exit VMI$_FAILZ MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l*[MGFTP]MGFTP026.RELEASE_NOTES;3+,g.l/ 4Oli?-(0123KPWOj56t`789GHJ # MadGoat FTP Release Notes August, 2000: This file contains the release notes for MadGoat> FTP V2.6-4. It describes any features, restrictions,@ changes, or additions made to the MadGoat FTP software? in this release, and includes information that is not; provided elsewhere in the MadGoat FTP manual set.= Revision/Update Information: This is a new manual.A Operating System and Version: OpenVMS VAX V5.0 or later= OpenVMS Alpha V1.5 or- later: Software Version: MadGoat FTP V2.6-4 Hunter Goatley  " ________________________ 10 August 2000= Permission is granted to copy and redistribute this* document for no commercial gain.? The information in this document is subject to change9 without notice and should not be construed as a9 commitment by MadGoat Software. The authors and; MadGoat Software assume no responsibility for any2 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 or MadGoat Software as to the suitability,> reliability, security, usefulness, or performance of this software.; The following are trademarks of Digital Equipment Corporation:> AXP VAX DEC OpenVMSA VMS UCX VAXcluster VMScluster@ MultiNet is a registered trademark of Process Software Corp.: TCPware is a trademark of Process Software Corp.: WIN/TCP and PathWay are registered trademarks of Attachmate, Inc. __________@ Copyright 2000 MadGoat Software & Hunter Goatley. All Rights Reserved.  A _______________________________________________________ ContentsA _______________________________________________________A CHAPTER 1 INSTALLATION NOTES 1-1A _________________________________________________A 1.1 COMMANDS 1-1A _________________________________________________A 1.2 ON-LINE HELP 1-2A _______________________________________________________A CHAPTER 2 NEW FEATURES AND BUG FIXES 2-1A _________________________________________________9 2.1 NEW FEATURES AND BUG FIXES IN MGFTPA V2.6-5 2-1A _________________________________________________9 2.2 NEW FEATURES AND BUG FIXES IN MGFTPA V2.6-4 2-1A _________________________________________________9 2.3 NEW FEATURES AND BUG FIXES IN MGFTPA V2.6-3 2-2A _________________________________________________9 2.4 NEW FEATURES AND BUG FIXES IN MGFTPA V2.6-2 2-2A _________________________________________________9 2.5 NEW FEATURES AND BUG FIXES IN MGFTPA V2.6-1 2-3A _________________________________________________9 2.6 NEW FEATURES AND BUG FIXES IN MGFTPA V2.6 2-4A iii   ContentsA _________________________________________________9 2.7 NEW FEATURES AND BUG FIXES IN MGFTPA V2.5-4 2-4A _________________________________________________9 2.8 NEW FEATURES AND BUG FIXES IN MGFTPA V2.5-3 2-5A _________________________________________________9 2.9 NEW FEATURES AND BUG FIXES IN MGFTPA V2.5-2 2-6A _________________________________________________9 2.10 NEW FEATURES AND BUG FIXES IN MGFTPA V2.5-1 2-7A _________________________________________________9 2.11 NEW FEATURES AND BUG FIXES IN MGFTPA V2.5 2-7A _________________________________________________9 2.12 NEW FEATURES AND BUG FIXES IN MGFTPA V2.4 2-8A _________________________________________________9 2.13 NEW FEATURES AND BUG FIXES IN MGFTPA V2.3-1 2-9A _________________________________________________9 2.14 NEW FEATURES AND BUG FIXES IN MGFTPA V2.3 2-9A _________________________________________________9 2.15 NEW FEATURES AND BUG FIXES IN MGFTPA V2.2-6 2-10A _________________________________________________9 2.16 NEW FEATURES AND BUG FIXES IN MGFTPA V2.2-5 2-10 iv  A ContentsA _________________________________________________9 2.17 NEW FEATURES AND BUG FIXES IN MGFTPA V2.2-4 2-11A _________________________________________________9 2.18 NEW FEATURES AND BUG FIXES IN MGFTPA V2.2-3 2-11A _________________________________________________A 2.19 BUG FIXES IN MGFTP V2.2-2 2-11A _________________________________________________A 2.20 BUG FIXES IN MGFTP V2.2-1 2-12A _________________________________________________A 2.21 NEW FEATURES IN MGFTP V2.2 2-12A _________________________________________________A 2.22 BUGS FIXED IN MGFTP V2.2 2-14A k^ MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l; _________________________________________________5 2.23 NEW FEATURES AND BUG FIXES FROMA PREVIOUS RELEASES 2-14A _______________________________________________________A CHAPTER 3 KNOWN BUGS AND RESTRICTIONS 3-1A _______________________________________________________A CHAPTER 4 PROBLEM REPORTS 4-1A _________________________________________________A 4.1 INFO-MADGOAT@MADGOAT.COM 4-1A _________________________________________________A 4.2 MADGOAT-ANNOUNCE@MADGOAT.COM 4-1A v   ContentsA _________________________________________________A 4.3 MADGOAT-BUGS@MADGOAT.COM 4-1A _________________________________________________A 4.4 MADGOAT-REGISTER@MADGOAT.COM 4-2 vi  A _______________________________________________________ 1 Installation Notes? This chapter contains items of interest pertaining to* the installation of MadGoat FTP.? MadGoat FTP 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.L __________________________________________________________________ 1.1 Commands; The command used to invoke the MadGoat FTP client6 can either be defined as a foreign symbol or5 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 may3 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 MadGoat FTP command will replace the vendor's definition.A 1-1   Installation NotesL __________________________________________________________________ 1.2 On-line Help? During the installation, you will be given the option@ of installing the help files for MadGoat FTP 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= 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 MADGOAT_ROOT:[HELP]. 1-2  A _______________________________________________________$ 2 New Features and Bug Fixes@ MadGoat FTP V2.6-4 includes the following new features. and bug fixes over earlier versions.L __________________________________________________________________4 2.1 New Features and Bug fixes in MGFTP V2.6-5@ o Some users did not like installing the MGFTP client; with SYSPRV for UCX, so the code that sets the@ buffer sizes was modified to just ignore any errors5 that occur when trying to set the sizes.; A global symbol, MGFTP_UCX_SYSPRV_INSTALL, can= be defined in MADGOAT_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" will7 prevent installing the client with SYSPRV.L __________________________________________________________________4 2.2 New Features and Bug fixes in MGFTP 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 MGFTP client can now be installed with SYSPRV< safely to allow this to work fo r non-privilegedA users. In previous versions, the client do not allow* for being installed securely.5 o NETLIB V2.2G is now packaged with MGFTP.A 2-1  $ New Features and Bug FixesL __________________________________________________________________4 2.3 New Features and Bug fixes in MGFTP V2.6-3; o The default window size used by MGFTP has been< increased from 6144 bytes to 17520. This change? should speed up file transfers over some links, inA some cases dramatically. For example, transfers overA an ISDN may be twice as fast as in previous versions of MGFTP.= A new logical, MADGOAT_FTP_WINDOW_SIZE, has been9 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 MGFTP did not set the DCL@ symbol $STATUS when COPY/FTP was used and it failed? for whatever reason. This has been corrected. NoteA that DIR/FTP may or may not set an error exit statusA if a file does not exist-some servers, including the@ MGFTP server, do not return an error for a DIR of a, non-existent file, for example.@ o When MGFTP was invoked via DIR/FTP, the case of the? specified filename was not preserved. This problem has been corrected.L __________________________________________________________________4 2.4 New Features and Bug fixes in MGFTP V2.6-2> o Previous versions of MGFTP 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. 2-2  A New Features and Bug Fixes: o Added support for a new logical, MADGOAT_FTP_< [ MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l  MAXIMUM_SERVERS, the value of which is a number= specifying the maximum number of FTP connections5 that can be established at any one time.@ o The MGFTP 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;8 this will be corrected in a future release.2 o Added support for new reply logicals:@ o MADGOAT_FTP_220_REPLY - the greeting displayed by2 the listener when a client connects< o MADGOAT_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", which7 causes the specified file to be displayed.9 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.L __________________________________________________________________4 2.5 New Features and Bug fixes in MGFTP V2.6-1A 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 fileA 2-3   r$ New Features and Bug Fixes= is created, reducing the need to extend the fileu, repeatedly during the transfer.L __________________________________________________________________2 2.6 New Features and Bug fixes in MGFTP V2.66 o Increased the throughput performance when= transferring files from the network to the local= disk. Previous versions of the server and client 8 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.a? This change has resulted in transfers from the net@ to the local disk that are 2 to 6 times faster than previous versions.sL __________________________________________________________________4 2.7 New Features and Bug fixes in MGFTP V2.5-4= o The MGFTP server did not work well with "cluster A aliases" implemented by MultiNet and TCPware because = it didn't specify the cluster alias when binding ? sockets for the data connections. This problem hasi been corrected.@ o The MGFTP server would generate an access violation@ if connections to an account were rejected with the@ REJECT logical. This didn't cause any problems withA the session, as the accvio happened during the image ? rundown, but it did leave an accvio message in thet= FTP_SERVER.LOG for the account. This problem has_ been corrected. 2-4e o eA New Features and Bug Fixes L __________________________________________________________________4 2.8 New Features and Bug fixes in MGFTP V2.5-3? o The MGFTP 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 MADGOAT_FTP_ACTIVITY log file now includesN< messages about successful file transfers, which3 can be useful in gathering statistics.? In previous versions of MGFTP, 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 via3 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 MGFTP 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.8 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 MADGOAT_FTP_E= HIDE_VMS_SYST is defined and UNIX emulation is4> in effect, the SYST response includes spaces to? disguise the fact that it's a VMS system running @ MGFTP. This causes Netscape to interpret the fileA 2-5_ _ _$ New Features and Bug Fixes? names and display file information for each file2 listed.0 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 MGFTP, this would try to access [DIR]< and not the expected [.DIR]. This problem has= been fixed. Now, "CWD /DIR/" is interpreted as5> "CD [.DIR]" for non-ANONYMOUS logins and as "CD+ [DIR]" for ANONYMOUS logins.A o In previous versions of MGFTP running on versions of A 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 A doesn't have any special meaning as it does for some  UNIX FTP servers)._> o The MGFTP 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 MGFTP, the client SPAWNA command incorrectly translated the command parameter = to lowercase. This problem has been corrected so_2 that the normal DCL case rules apply.A o The client commands LCD and LLS (local DIR and local ? LS) are not documented, but are present. They w($ MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l-ill ) be documented in MGFTP V2.6.eL __________________________________________________________________4 2.9 New Features and Bug fixes in MGFTP V2.5-2: o The MGFTP client did not handle some types of: connection failures properly, resulting in IP7 devices (BG:, INET:) not getting released.S> o The MGFTP client now shows the full expanded file* name on file transfer errors. 2-6_ _ _A New Features and Bug Fixes.L __________________________________________________________________4 2.10 New Features and Bug fixes in MGFTP V2.5-1A o A logic error in setting the end-of-file byte caused_> the last block of a file to be lost when the lastA block transferred was a full 512 bytes. This problem_ has been fixed.L __________________________________________________________________2 2.11 New Features and Bug fixes in MGFTP V2.5? o Passive mode support in the MadGoat FTP server has A been reworked to work properly with more clients. In A previous versions, the server assumed clients worked @ like the MGFTP client did in passive mode: the PASV? command was sent, the passive connection was made,9 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 thatO: would sometimes cause the server to close the? connection without transferring some or all of then data.? In MGFTP V2.5, the server now handles passive mode 4 properly for both types of connections.< o In previous versions of MGFTP, connections that: failed to log in for whatever reason (invalid= password, invalid account, etc.) and immediately9 exited the FTP session would cause the MGFTPA Listener to die with an access violation. The access_? violation occurred when the listener tried to sendr= the reply code to the client; it didn't check tol< be sure the the connection still existed before@ attempting to send the reply code. This problem has been fixed.A 2-7  , i$ New Features and Bug Fixes> o When transferring a binary file from a UNIX or NT= system, MGFTP pads the final block with nulls to_@ make an even 512-byte block. There was code presentA 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 thec? padded nulls added by MGFTP. This problem has beeny? fixed; the actual size of the file is now properlyn! maintained by MGFTP.@ o In MGFTP V2.4, the listener could not be started onA multiple nodes of a cluster because the log file was A locked by the first process started. The FTP_STARTUPh> command procedure now defines a node-specific log, file for each listener process.L __________________________________________________________________2 2.12 New Features and Bug fixes in MGFTP V2.4> o In MGFTP V2.2, the client and server were changed8 to translate the UNIX directory spec "/" to@ "SYS$DISK:[000000]". While this is the more correct: behavior for anonymous logins, it was usuallyA incorrect for non-anonymous accounts. The client and.A server will now translate "/" to "SYS$DISK:[000000]" ? for anonymous logins, and to "SYS$LOGIN:" for non- anonymous logins.; o In previous versions of MadGoat FTP, the MGFTP > Listener was unable to do remote hostname lookups< after a connection was established when running> under MultiNet and Pathway. This version of MGFTP> 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 MADGOAT_FTP_? LOCAL_HOSTNAME had no effect, because the listener2? did a second lookup of the host name. This problem  has been fixed. 2-8_ _ _A New Features and Bug Fixess= o The MadGoat FTP Listener no longer creates a news? activity log file each time it starts. Instead, ite2 appends records to the existing file.; o The MADGOAT_FTP_ACTIVITY log file now includesn< messages about successful file transfers, which3 can be useful in gathering statistics. @ o The activity log now differentiates between servers= and anonymous servers with the label "ANONYMOUS-a Server".e; 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 ANONYMOUS4 account had at least NETMBX and TMPMBX.A o Several memory leaks in the MGFTP Listener have beenaA fixed. The leaks could eventually have caused to the 6 listener to die with an access violation.L __________________________________________________________________4 2.13 New Features and Bug fixes in MGFTP V2.3-1? o When doing UNIX ls emulation, resource identifierst@ as owners weren't handled properly, resulting in an> invalid display. This problem has been corrected.L __________________________________________________________________2 2.14 New Features and Bug fixes in MGFTP V2.3> o The MadGoat FTP Server can now generate directory9 listings in a UNIX-style format, for greater = compatibility with browsers that think the world = only runs UNIX. When the logical MADGOAT_FTP_DO_ > UNIX_LS is defined, the MGFTP 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 alwaysl* generate UNIX-style listings.A 2-9, l n$ New Features and Bug Fixes: o The MGFTP Listener now checks for the logical? MADGOAT_FTP_LOCAL_HOSTNAME. If that's defined, theaA equivalence string is used as the system name in thetA 220 greeting displayed to the client. A generic nameu? like "ftp.madgoat.com" can be displayed instead of $ the actual system name.= o The MGFTP client ATTACH command now supports the  /PARENTVh MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l3< qualifier. L __________________________________________________________________4 2.15 New Features and Bug fixes in MGFTP V2.2-6? o The MGFTP Server now accepts subdirectory names in_A the Netscape string "CD [.~user.subdir]" format. SeeG= the notes for V2.2-5 below for more information.cL __________________________________________________________________4 2.16 New Features and Bug fixes in MGFTP V2.2-5@ o The MGFTP Server has been modified to check for the= existence of the logical MADGOAT_FTP_ALLOW_PRIV_2@ 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 for3 information about this security risk.) A o Netscape tries to be helpful and converts referencese= to "CD ~user" to "CD [.~user]". The MGFTP Serverw@ now recognizes this special case and converts it to "~user". @ o In previous versions of MGFTP V2.2, pressing CTRL-A? could generate a "divide by zero fault" if no datae< had been transferred yet. This problem has been corrected.E 2-10  A New Features and Bug Fixes L __________________________________________________________________4 2.17 New Features and Bug fixes in MGFTP V2.2-4; o To protect systems against the CERT FTP Bouncen6 attack, the MGFTP server no longer allows= connections to 3rd-party machines via the servern PORT command.L __________________________________________________________________4 2.18 New Features and Bug fixes in MGFTP V2.2-3? o Pressing CTRL-A while transferring a file will now A show the estimated time remaining for a transfer (ifc> the total file size is known, meaning on all PUTs= and on GETs transferred via STRU VMS or when the 0 total file size can be determined).@ o Timezone support in the FTP server has been updatedA to include support for the SYS$TIMEZONE_DIFFERENTIAL_ logical._? o The MGFTP server didn't properly transfer "Stream" ? format files in BINARY mode (it forced those fileso= to ASCII mode). This problem has been corrected. L __________________________________________________________________# 2.19 Bug fixes in MGFTP V2.2-2 A o The MGFTP client did not support the /PORT qualifierZ? on the OPEN command, though it did support it fromi? 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 PORTa command.2A o Another CMUIP access violation in the MGFTP listener  has been fixed.A 2-11  v a$ New Features and Bug FixesL __________________________________________________________________# 2.20 Bug fixes in MGFTP V2.2-1n9 o The MGFTP listener would die with a "NetworksA partner disconnected logical link" error under CMUIPk? whenever an FTP session disconnected. This problems has been corrected.L __________________________________________________________________$ 2.21 New Features in MGFTP V2.2; o Support has been added for NETLIB V2. Previous > versions of MadGoat FTP worked with NETLIB V2 viaA the V1 compatibility routines in NETLIB V2. However, @ an incompatibility between those routines and MGFTP= would sometimes cause the MGFTP listener to exite> 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. A 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. Thise> feature may be useful to sites with machines that% have multiple addresses..= o The MadGoat FTP client now supports being calleds: from COPY/FTP and DIR/FTP. All qualifiers are9 supported except COPY/FTP/FDL. When MGFTP isA started, the logicals OPENVMS$FTP and OPENVMS$FTPDIR = (used by COPY/FTP and DIR/FTP, respectively) areI> automatically defined to point to the MadGoat FTP client. 2-12 t A New Features and Bug Fixes > o The MadGoat FTP Server now supports the directory< specification "~username" to access the default6 login directory for a user on the system.? o By defining the logical MADGOAT_FTP_TILDE_ANONDIR, < you can allow users on the local system to makeA files accessible to anonymous FTP users from specialdA subdirectories under their login directories. If thel@ logical is not defined, anonymous FTP users are not/ allowed to use the "~user" format.t@ For example, you can define the logical to be equal> to "AFTP". Once defined, users can create [.AFTP]; subdirectories. Anonymous FTP users could thent@ access files in each user's anonymous FTP directory0 by using a command like "CD ~USER".A This support provides anonymous FTP access analogous = to the serving of user-based World-Wide Web HTML  pages. = o The MadGoat FTP client includes the new commandst> DEFINE/KEY, DELETE/KEY, and SHOW KEY that let youA define keys to execute commands. DEFINE/KEY commandse< can be placed in an initialization file to have@ them defined automatically when users run the MGFTP client.> o The MadGoat FTP 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 specifieds; subdirectory tree to be recreated and properly * populated on the remote node.> o The output displayed when transferring a file andA pressing CTRL-A or CTRL-T now shows the total number ) of blocks to be transferred.A 2-13   $ New Features and Bug FixesL __________________________________________________________________" 2.22 Bugs Fixed in MGFT c,) MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?lKP V2.2< o The MGFTP client qualifier /QUIET disabled most@ messages, but still allowed replies from the remoteA system to be displayed. /QUIET/NOREPLY now prohibits < the display of all messages, including replies.A o The CTRL-A and CTRL-T transfer status display in the @ MGFTP client didn't work if MGFTP was executed from> within a command procedure. This problem has been corrected. A o Several obscure bugs in the MGFTP Listener have been? corrected. These bugs would occasionally cause the 6 listener to die with an access violation.A o In previous versions of MGFTP, the client and server ; would translate the UNIX directory spec "/" toe? "SYS$LOGIN:". The spec is now correctly translatedu> to "SYS$DISK:[000000]" when it appears by itself.> o A bug in the calculation of the percentage in theA CTRL-A status line could cause incorrect percentages > to be displayed when transferring extremely large4 files. This problem has been corrected.8 o The FTP client commands GET and PUT did not> correctly handle the global /RETAIN setting. This( problem has been corrected.L __________________________________________________________________; 2.23 New Features and Bug Fixes from Previous Releases @ The following new features and bug fixes were added in V2.1-2..6 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.h? This information can be read by executing MADGOAT_ > 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. 2-14 _ _A New Features and Bug Fixes ? Note: The remote host name will not be returned ife< 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 MADGOAT_FTP_WILD_VERSION logical name= which controls the default filespec for the LIST ? FTP server command. If MADGOAT_FTP_WILD_VERSION isd> defined as "T" or "Y", then a default filespec of@ *.*;* will be used, i.e., all versions of the files? requested will be displayed. Otherwise, the normalt3 default filespec of *.*; will be used.e> 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 anyn< 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.e; o Support for listening to a port other than thet= default FTP port (21) was added to FTP_LISTENER.e> The MADGOAT_FTP_LISTENER_PORT logical name may beA used to specify an alternate port. This logical name 1 should be defined /SYSTEM/EXECUTIVE.< o Fixed a bug in the handling of MADGOAT_FTP_DIRS< values of the form "dev:[000000...]." Directory7 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.A 2-15  e $ New Features and Bug Fixes@ The following new features and bug fixes were added in V2.1.pA 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.A o Wildcarded directory names are now supported for thed? MADGOAT_FTP_DIRS and MADGOAT_FTP_user_DIRS logical A names. For example, the following are now acceptable_A directory values: DISK:[*...], DISK:[DIR*.SUB%], andg DISK:[DIR.SUB*...].= o The MADGOAT_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:" >PWDO <257 "SYS$SYSROOT:[SYSHLP]" is current directory.D? The quotes in the reply are not recognized by someN= FTP clients. They can be disabled, on a per-user A basis, by defining MADGOAT_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. A o The FTP server's installed privileges were remaining : enabled if they were authorized for the user.? Installed privileged are now disabled if they wereC' not enabled at login time. @ The following new features and bug fixes were added in V2.0-3. A o NETMBX privilege is now enabled before attempting toA connect to a remote host. Previously, the FTP client = did not enable it, so installing the client witht" NETMBX had no effect. 2-16 v A New Features and Bug Fixess; o Some FTP clients do not switch from STRU O VMSe? before attempting a directory listing, which wouldf= cause the FTP server to complain about the STRU. ; This restriction has been removed from the FTPs server.> o Nested command procedure calls are now supported.A 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 MADGOAT_FTP_USER_a PROMPT is defined. < o The FTP server will now display the contents ofA .MESSAGE files if present when changing directories.@ The following new features and bug fixes were added in V2.0-2._9 o A bug that caused the MADGOAT_FTP_ANONYMOUS_e; DIRS logical to be ignored has been corrected. ? Previously, the logical was ignored if the FTP logw( files could not be created.> o If the remote host name exceeded 28 characters in= length, the FTP client would not accept commands_4 from the user. This has been corrected.@ o The two-line opening greeting from the FTP listenerA has been changed to a single line to allow Mosaic to + work with MadGoat FTP servers.w@   MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l fZo 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.A 2-17.  $ New Features and Bug Fixes< o FTP_STARTUP.COM now starts NETLIB, if it hasn't" already been started.A o A bug in the client that caused access violations onN9 CTRL-C for some commands has been corrected.n< o The HELP command was looking for the wrong help@ library. This has been corrected. (It worked if the3 MADGOAT_FTP_HELP logical was defined.) = o The client command PUT would sometimes fail withc@ "record too large for user's buffer" when Stream_LF= files were transferred. This has been corrected._? MadGoat FTP V2.0 was the first release of the MadGoat8 Software version of the FTP client and server.= MadGoat FTP began life as the FTP client and serverm> 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. Wheni@ the code was made freely available, support was picked8 up primarily by Henry Miller and John Clement.: MadGoat FTP 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 muche@ earlier UCX port (known as CRUX) done by Matt Madison.< The OpenVMS Alpha port was done by Hunter Goatley.7 NETLIB V2.2F is included with the MadGoat FTPi= distribution. NETLIB is written by Matt Madison and - is also a MadGoat Software product. ? MadGoat FTP is currently maintained by Hunter Goatleyd# (goathunter@goatley.com).e= The MadGoat FTP software contains numerous changes, ; enhancements, and bug fixes over the original CMUN version. 2-18  A _______________________________________________________ % 3 Known Bugs and Restrictions@ This chapter describes the known bugs and restrictions of MadGoat FTP V2.6-4.A o When using CTRL-C to abort an action, the FTP clientr@ 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 forn: directory listings and automatically switches@ back to STRU VMS when the command has completed. IF? CTRL-C is used to abort the listing, the structurea= setting may not be reset to STRU VMS, though thet< remote server is reset. To correct this, simplyA issue the SET STRUCTURE VMS command before any otheru command.O@ 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.IA The case is maintained as long as the file names are_ different._? o The MadGoat FTP server cannot determine the remote ? host name for logging purposes when the underlyingf= TCP/IP transport is MultiNet or WIN/TCP. This ist> because of an AST implementation conflict between9 these transports and the MadGoat FTP server.F> 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 MadGoat FTP under CMU-Tek,> you will need to make sure that the MAXBUF SYSGEN/ parameter is set to at least 8300.aA 3-1  % Known Bugs and Restrictions < o If you are running MadGoat FTP 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 9 system; UCX$INET_DOMAIN should be defined asM; 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 couldb? define UCX$INET_HOST as wkuvx1 and UCX$INET_DOMAINo as wku.edu.A If UCX$INET_HOST and UCX$INET_DOMAIN are not definedv@ correctly, you will need to redefine them at system? startup. They should be defined /SYSTEM/EXECUTIVE_i MODE. 3-2e o cA _______________________________________________________  4 Problem Reports > MadGoat Software has set up the following electronic: mailing lists for discussions and support of its products.VL __________________________________________________________________" 4.1 Info-MadGoat@MadGoat.com> Discussion of MadGoat Software products by users and? MadGoat developers. To subscribe, send a mail messageo to: 6 Info-MadGoat-Request@MadGoat.com? with the word SUBSCRIBE in the first line of the bodye of the message.ML __________________________________________________________________& 4.2 MadGoat-Announce@MadGoat.com= Announcements of new releases and new products from 8 MadGoat. To subscribe, send a mail message to:8 MadGoat-Announce-Request@MadGoat.com? with the word SUBSCRIBE in the first line of the body  of the message.L __________________________________________________________________" 4.3 MadGoat-Bugs@MadGoat.com8 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 appropriates developer.A 4-1c d  Problem Reports L __________________________________________________________________& 4.4 MadGoat-Register@MadGoat.com? Address for registering your use of MadGoat Software.e6 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 product4 and the future directions of the products.8 To register, simply mail a message to MadGoat-> Register@MadGoat.com with the following information: Installer's name% Company name and addresse? System(s) on which the MadGoat software is runningN(  dg([MGFTP]MGFTP026.RELEASE_NOTES;3O?l`C5"`]Aug1yT\V vW!@"6 /_8)")J-GpLrr}? v)5ah5 `{wT) r}bey4j4%8zNnAOli0N/)/z? "sOXS T$U l GL.XQ<ĠvsP C[t0PLI"RZl &0-Wc/{GsRGMv^OVfu_DyQ dS |?vJMy!#@ Ea6u:^JDH_ UIx^8N6zJFcb'Qf?S :@'WdO#p.d`Xmw/df n3r5/6:F.LIJ !+F|3!)|r *j$>$=ގE>j{kcۀ0`+&F'f?k,hS3K[ Br i2^+ gb G/l }9{p&M#*j$ 6A| 1:fl/v$<&dQQLxby!W-(`;St6Q k):Up8o/ReB #L2*HJOD_T5/ .{3l _X+t{b$c ):G_wH+wwAQW\ Z^&6KoWtAxsB.RkfI#'G(W!Y`HEOq'Mi1;f9k~Wm4NAvoC [1:UT[97*}6H 4=FiG B F,N83NKyFzX6F~QUG1 + =hfb%X-uHnRu Ex" "R 6^ l20b`%l"OWkX~n<$TTDVSW4|N9B.!qy7|`!=+77HW+4z%}CD?h (*6*6HEYemW!}9}iuu;nc`v-~(;o ~H \ G'pq-je>o|b;$%pJdbeQKzqxE@mT'~J:gFztt9L{x]7J$=Y'ZEh T:S>&| Av*&NyOn#1?_*cLOaz-WiJrb U&|i{#GRG,} {!IBZKMJWA="E-J{-u: TOH 8ve&==>mE==VWZUK? Ek8[dz+>+,nuH# [;GU7Bq ]a(brOhfty5o %"[GmL g YYVsKVkAj 5Cdl?$YU%%,WPYEupvf*RKr|X@c:h3P@uL}6@j=TB$. vVs"m5Jj-*KPpvO"e*I` F4bMOMC4 fw)4-riy=Jjc0Y)arh"z/]"M4'$ql- O3ux-nuQ]JUl"bcO -o&6p.yBTD+- 3q$c4bKT0Vu~"9MxD% ukk1\>` @G9No+q|KV6y(Py5UnVG|N-B)IC^\ F?\Nq!I+^1:3@'U2eHMy@4D8wcH{wdSqSp~Q$9o>Z lzX+_uw@lWS\#^wMNl(nz\~FxkW /DWe%P>l|u` H+QwITImnYoGT8+U"@L8e5-+xu9*7e-Q z'lY47Acx[o/?/%N x%}o `J8 H& 4=l9UkKiE]-q;m?'HIsTsM1AxAz|cJy[:`,"` BIF?P'LFLM#UFl3td 1++Z 5*r\? wFslm8#-R&Ommb./&SA0Cd7{%E =x vnyb->:DUR0VgyMies e#9XV@YuTp[oD|dz_=E~UUywm0=peX=weogaX`X#|Q`$S B. ~r #cRW^3P1BO k:}"!j|`FLtbdz2| n/mGi4b 6pyA\QZ*sNm .j(i|^6s[M*PK('?\ .e_gip|$;-=Kc|))K zCv F-oy7fKs`U,:yDvCPiOl;$1TGU.`SAok0 ],R*i3c%3Z1}WS@/=0~C s*MlM<F[h [='+ C{L6mE!KHd:,7IS^\P{8`moU3*lH$G>(zi$fV ]SF~@:8%l|}EW5dFS|Nl Kax(A_l8m{OR}_vj ~#p%~F\6| "Jlw5}OE*ec%Tzrg u~_#My!~R(s_.gMF^=VBk6RdwS854?- (dH=& osN_@J& g$!&OyDX"*%>p:B$vvNg=CJzhhs6TzO<_+r,u";fy/n?!\.*WN z~N9)v]r JO9}tK/dnR5OfLO|7 Ttam8wtT i`5Iquu\8}o,w7h=+X>6CU8+d14 !D9ETMY(vt 1-u ]x#ew"/+GV C0On { g:f;0k";vZsfb[=-7Gr"kZd%pk@2O A_bdv' /h,,}9F:-8};U+hU>x4% +p4z[)'~8<>*^#6B!9o{wV]/sVUopAz?wvapLU5~5IN;01OW&4>imJBU7yGZfNO@\a4;&F@x$:@`*78rvJ9 6$)b-7x/ C4Isft1   nP;pcr3z3U! YR"iLJPxAV$sHE\ z#FxC|8q:>]  T3rOQgRO6iS%~ySjMHK]q4^8 TB+cj0"hyk[[MSQx[!b#2\E2gi2u^rEx@^wkyu eG!?(4hF!`*).G[S?L=/7<!%#\q TwfYsuk}CnzKiRLNT_A]ZAK+>BiLcxM#~'cE`+h#ex/n)+9i.<8 qpNdFfgk~8TLA2:B~(}jAP4aY#& _J@6N[I8'EYM >5 p'PuR!w1Vub 3}(J%o(~bc~l- lB@U|Ujeq3 )^=>?Wf`1v 29wUQ 0 9v5MD%xGY MH>S $1rL3ZiJHPQEI'nm -j0c%I z+%-Z?Wj)kIQ8j5ORLO!`+W$-Y_U)?^>W#>qfrL Jvi0Dx$ ls''= XJ;Z^-9'XMa5 0}KG:,F3Lh9>o} IDwS>%<gD[w!qZ&NBk!i'Jb1pC"4Z7.7a404B)d< \{E4 ZJt{ WSdrGe\N5I6KLw~dQnWy D rYuR7)8s41j2Y5a6Q(fTx-{N|i 2aa6Tj*-|nS$}=JaaK64`]g/ 2cs]*S@h\u9Kzp{-x&.  -B %t8'YDqCPnANuvL`fsiKd2K6xEwQJ7dOwC|9dF> V&`1O rDBVD;S?@)pNR ;{%Tox!YiM)2dqyZM q'q %oB 7dHb Nng6]^ 5_):>Je6!Cxt,;1G&f?Bk`-!hCc#..)#  g.!^Zh]23 ?3{Oh ZL|+ eyo,f*Js,+wNt:B"mYdP nlX *f}`mWZt.(#m&@1z6I0p )V4$;E^i$;PY d d;k u(O]Nq i .R-AQ{3H8 HwW6E;*ki>Yg\Oowu3@\_SKt) V(i ZnWSZ 4lR 26#p"P~Y h>[;*%uSo"&OA5.&);Z )Z:Z92-jFZ@KB1z4PH\ZgcPUMYH"]q+-VD z-GK$%&BC;G|cG+] k+;IV,uy12mHm~MM:Q/E_ Daq?c72i73BknR~@ *e [ YQ)&k7 Pm2]BpV?z"&O.mrW;3@jrf$Rf(rpPg|B<>%miEk3o "s7)& #D3n-!]L g;YqG$h r?O$0|6r:w uD*3tU{NkpfxOOUh7bo zUgyBr,))reiaFx{AT.?BIQI_":?#TqRn5wx4R'QANZmw-"M-"fB UqT, fr+GB'i^1>F@"ug X6ojn`=?Q1L},,F]_0q! "vDSRA>{kPMHG@ + c^NM/ 'Prj@`-tnK9:}1;yoQ@9^RQY#6 bv$E+FUY{q]]]EO8YRr}J=m*mHZ]D `\YG MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?lAi Which products you're using; Any comments and/or suggestions you might havec@ Also, you can find the MadGoat Software web page using, the URL "http://www.madgoat.com/". 4-2 o The MadGoat FTP 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 specifieds;  ꅪG MGFTP026.Ag([MGFTP]MGFTP026.RELEASE_NOTES;3O?l'%i Which products you're using; Any comments and/or suggestions you might havec@ Also, you can find the MadGoat Software web page using, the URL "http://www.madgoat.com/". 4-2 o The MadGoat FTP 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 specifieds;