s MGFTP021.AG MGFTP021.ARBACKUP/INTERCHANGE/BLOCK=8192 KITINSTAL.COM,MGFTP021.RELEASE_NOTES MGFTP021.A/SAVE GOATHUNTER S/dFV6.1 _ALPHA::  _ALPHA$DKB100: V6.1  *[FTP.KIT]KITINSTAL.COM;15+,.!/ 4d!!- 0123KPWO"562%F7|dF89GHJ$! [FTP.KIT]KITINSTAL.COM$!:$! KITINSTAL procedure for installing MadGoat FTP V2.1-2.?$! Copyright 1994 by MadGoat Software. All rights reserved.$! $!-----------*$ 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 AXP)$!!$ IF f$getsyi("HW_MODEL").lt.1024$ THEN $ ftp_vax = 1 $ ftp_axp = 0$ netlib_vax = 1$ netlib_axp = 0$ netlib_saveset = "B" $ 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_axp = 1$ netlib_vax = 0$ netlib_axp = 1$ netlib_saveset = "C"$ 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# MadGoat FTP V2.1-2 Installation= Copyright 1994, MadGoat Software. All rights reserved.7 Redistribution for no commercial gain is permitted.$ 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 AXP VMSclusters! -----------------------------E This system is part of a VMScluster. If this VMScluster includesF both VAX and AXP systems that will share a MadGoat directory tree,D it will be necessary to install MadGoat FTP twice: once on a VAXF system and once on an AXP system. It is only necessary to install@ the FULL MadGoat FTP kit on one type of system (VAX or AXP).@ 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_AXP_AND_VAX -@ "Does this VMScluster include both VAX and AXP systems" "NO" B$ if .not.ftp_axp_and_vax$ then ftp_install_exe_only = 0$ goto FTP_ASK_FOR_DIR$ endif$ type sys$inputH MadGoat FTP for AXP 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!F If you elect to install NETLIB, you should specify that the NETLIBE images should be installed in MADGOAT_ROOT:[EXE] for VAXen and in- MADGOAT_ROOT:[ALPHA_EXE] for AXP systems.%$ VMI$CALLBACK ASK FTP_AXP_AND_VAX1 -K "Will the VAX and AXP systems share a common MadGoat directory" "YES" B4$ if .not.ftp_axp_and_vax1 then goto FTP_ASK_FOR_DIR $ if ftp_vax$ then ftp_system_type = "VAX"$ ftp_other_type = "AXP"$ ftp_article = "an"$ else ftp_system_type = "AXP"$ ftp_other_type = "VAX"$ ftp_article = "a"$ endifO$ clustquest = f$fao("Has MadGoat FTP !AS already been installed on !AS !AS "+-@ "system in this cluster", "V2.1", ftp_article, ftp_other_type):$ VMI$CALLBACK ASK FTP_AXP_AND_VAX2 "''clustquest'" "NO" B$ if ftp_axp_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$!0$ if ftp_axp_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_axp_and_vax3 "Is this correct" "YES" B9$ if .not.ftp_axp_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_axp0$ 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$ --------------------------------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 insGL MGFTP021.A [FTP.KIT]KITINSTAL.COM;15d!tall 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.$ VMI$CALLBACK ASK - ftp_do_netlib -4 "Do you want to install the NETLIB V1.7 library" - YES - B$ endif$!$! $ IF ftp_do_netlib$ THEN$ TYPE SYS$INPUT:5 Now installing NETLIB library for TCP/IP support.1$ VMI$CALLBACK RESTORE_SAVESET 'netlib_saveset'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 = "NETLIB017" $ ENDIF"$ FTP_SAVE_PRODUCT = VMI$PRODUCT%$ VMI$PRODUCT = FTP_NETLIB_PRODNAMEC$ @VMI$KWD:NETLIB_INSTALL 'P1' 'P2' 'P3' 'P4' 'P5' 'P6' 'P7' 'P8'"$ VMI$PRODUCT = FTP_SAVE_PRODUCT.$ DEFINE NETLIB_SHRXFR VMI$KWD:NETLIB_SHRXFR$!$ 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 D:$ 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/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 E$ write sys$output ""$ Dž MGFTP021.A [FTP.KIT]KITINSTAL.COM;15d!o4 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 F$ 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_DONE$ 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 the: 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 ""$!++$! done$!-- $ FTP_DONE:$ EXIT VMI$_SUCCESS[$ delete_file : SUBROUTINE2$ VMI$CALLBACK FIND_FILE FTP_TEMP 'p1' "" S found8$ IF found .eqs. "S" then VMI$CALLBACK DELETE_FILE 'p1'$ exitv$ ENDSUBROUTINE----*$ 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 AXP)$!!$ IF f$getsyi("H MGFTP021.A? ![FTP.KIT]MGFTP021.RELEASE_NOTES;5L?*!*[FTP.KIT]MGFTP021.RELEASE_NOTES;5+,?.*/ 4L*)T?- 0123KPWO*56r|bF7ydF89GHJ # MadGoat FTP Release Notes December 1994: This file contains the release notes for MadGoat> FTP V2.1-2. 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 laterA OpenVMS AXP V1.0 or later: Software Version: MadGoat FTP V2.1-2 Hunter Goatley MadGoat Software  " ________________________ 2 December 1994= 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:D AXP VAX DEC OpenVMSG VMS UCX VAXcluster VMScluster9 MultiNet is a registered trademark of TGV, Inc.: TCPware is a trademark of Process Software Corp.> WIN/TCP and PathWay are registered trademarks of The Wollongong Group, Inc. __________@ Copyright 1994 MadGoat Software. 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 _______________________________________________________A CHAPTER 3 KNOWN BUGS AND RESTRICTIONS 3-1A _______________________________________________________A CHAPTER 4 PROBLEM REPORTS 4-1A _________________________________________________A 4.1 INFO-MADGOAT@WKUVX1.WKU.EDU 4-1A _________________________________________________A 4.2 MADGOAT-ANNOUNCE@WKUVX1.WKU.EDU 4-1A _________________________________________________A 4.3 MADGOAT-BUGS@WKUVX1.WKU.EDU 4-1A _________________________________________________A 4.4 MADGOAT-REGISTER@WKUVX1.WKU.EDU 4-2A iii  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@ The following new features have been added and bugs in6 V2.1 have been fixed for MadGoat FTP 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.? 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.? 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 MADGOAT_FTP_WILD_VERSION logical name= which controls the default filespec foryX MGFTP021.A? ![FTP.KIT]MGFTP021.RELEASE_NOTES;5L?*1 the LIST? FTP server command. If MADGOAT_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 will be displayed. Otherwise, the normal3 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.A 2-1  $ New Features and Bug Fixes@ The following new features have been added and bugs in6 V2.1 have been fixed for MadGoat FTP V2.1-1.; o Support for listening to a port other than the= default FTP port (21) was added to FTP_LISTENER.> The MADGOAT_FTP_LISTENER_PORT logical name may be< used to specify an alternate port. This logical6 name 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.< The following new features and bug fixes appear in MadGoat FTP V2.1.9 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.= o Wildcarded directory names are now supported for; the MADGOAT_FTP_DIRS and MADGOAT_FTP_user_DIRS: logical names. For example, the following are: now acceptable directory values: DISK:[*...],6 DISK:[DIR*.SUB%], and 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: >PWDC <257 "SYS$SYSROOT:[SYSHLP]" is current directory. 2-2  A New Features and Bug Fixes? The quotes in the reply are not recognized by some= FTP clients. They can be disabled, on a per-user= 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.7 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 have been added and bugs in6 V2.0 have been fixed for MadGoat FTP 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.= 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_ PROMPT is defined.9 o The FTP server will now display the contents7 of .MESSAGE files if present when changing directories.A 2-3  $ New Features and Bug Fixes> The following bugs in V2.0 were fixed in MadGoat FTP V2.0-2.9 o A bug that caused the MADGOAT_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 commands4 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 bugs in V2.0 were fixed in MadGoat FTP 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 the3 MADGOAT_FTP_HELP logical was defined.)= 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.> MadGoat FTP V2.0 is the first release of the MadGoat8 Software version of the FTP client and server. 2-4  A New Features and Bug Fixes= MadGoat FTP 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 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 much@ earlier UCX port (known as CRUX) done by Matt Madison.: The OpenVMS AXP port was done by Hunter Goatley.? NETLIB is included with the MadGoat FTP distribution.9 NETLIB is written by Matt Madison and is also a# MadGoat Software product.7 MadGoat FTP is currently maintained by Hunter5 Goatley, VMS Systems Programmer for Western0 Kentucky UniversAk MGFTP021.A? ![FTP.KIT]MGFTP021.RELEASE_NOTES;5L?*ity, Bowling Green, KY& (goathunter@WKUVX1.WKU.EDU).= The MadGoat FTP software contains numerous changes,; enhancements, and bug fixes over the original CMU version.A 2-5  A _______________________________________________________% 3 Known Bugs and Restrictions@ This chapter describes the known bugs and restrictions of MadGoat FTP V2.1-2.: 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 MadGoat FTP server cannot determine the remote? host name for logging purposes when the underlying1= TCP/IP transport is MultiNet or WIN/TCP. This isd> because of an AST implementation conflict between9 these transports and the MadGoat FTP server.T> 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. A 3-1  a a% 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_HOSTe; should be defined as the hostname of the local 9 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 couldR? define UCX$INET_HOST as wkuvx1 and UCX$INET_DOMAIN  as wku.edu.9 If UCX$INET_HOST and UCX$INET_DOMAIN are notu9 defined correctly, you will need to redefine ; them at system startup. They should be definedl$ /SYSTEM/EXECUTIVE_MODE. 3-2   A _______________________________________________________t 4 Problem Reports > MadGoat Software has set up the following electronic: mailing lists for discussions and support of its products.eL __________________________________________________________________% 4.1 Info-MadGoat@WKUVX1.WKU.EDUo> Discussion of MadGoat Software products by users and? MadGoat developers. To subscribe, send a mail messageo to: 7 Info-MadGoat-Request@wkuvx1.wku.edu? with the word SUBSCRIBE in the first line of the body of the message._L __________________________________________________________________) 4.2 MadGoat-Announce@WKUVX1.WKU.EDU = Announcements of new releases and new products from 8 MadGoat. To subscribe, send a mail message to:9 MadGoat-Announce-Request@wkuvx1.wku.edu_? with the word SUBSCRIBE in the first line of the body  of the message._L __________________________________________________________________% 4.3 MadGoat-Bugs@WKUVX1.WKU.EDU8 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 appropriateK developer.A 4-1   Problem ReportsEL __________________________________________________________________) 4.4 MadGoat-Register@WKUVX1.WKU.EDUA? Address for registering your use of MadGoat Software._6 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-4 Register@WKUVX1.WKU.EDU with the following information: Installer's nameo% Company name and address ? System(s) on which the MadGoat software is runningr( Which products you're using; Any comments and/or suggestions you might have 4-2 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 7 }? ![FTP.KIT]MGFTP021.RELEASE_NOTES;5L?*\,8Abd@KL+{K7Y_l 6Q7C`_E_UN 9Fm0p6^XR0Ok"< wyW9)oPfy(Y1dcOBVjigQkXM\4_pmb\`} cq"26pojSGIwvn5?->C'CiO7;J%@t}cx>#+xnN%QkVE:m  if>kL~QBzD:j#`iB*Qg:~Tn#u0+6\vpha;">}m\jeP3rm,yu 8k:Z[$ } .&W `OH6=]6K0+263//r;78Gg] ,v@-ilGNtSC"(|DC)f}! +9d6eTjQX^4"C(2d! 3t! eo3` aGrYek;uB/&!h!v_MnO)+̪AqqN9dLnYyCH;1iwH'?T s5i8IfRAVJ"kEI@4>X2DQ;q[L&vFe&3JIa%GEB28v *.wI{]]ZV[Y+^Zy @V% e^(^>IH __CfMXQGQ[a`Gy]K;| %r0D ;2Hn JEhSU%I'{"3yZ$5+&>.(,N 90U"{G6Z:iX'Db8 %<?'0dn)Qh A~,gySip} `comk~'\Oq qom1/2/4\BDm3w { tJ@!g_c?90zJsZ_bZ1o1 $O6B8$^5 zTIYM1EqWuL+>>o( W7;vpx.,K0tMCF8!vgH 2E?uN[ FMp4asI==qQxCO+SVv\j}D6A(Jwf FDSk%A%r?+GvpaZu,5"CxVZip4|/ A{|iDk=K( CIZ+]NP%{.4g|6PTC5` 1,Q7"twncqtDFf4DbM \i[u7O ^$9h;tfi1FIx]o=N2+`@>ta` V`m?od~m]&|VP 4&!chHqGGvm%;&j #'s5t^  oy7Y[d p\> +`2 ?Vjj }Q51rm-X$ V' _&aY )nS9`al:8E38[1XI+j]6G;WJ};Scb($ ywv(`* M^C1d\B`^u>Rm5k#RJi\Xd$v$@%8/qi4(F%4*k^6EzfS~ <[;EKd55$)(,x!^DTqy;Bo_VGGI'/#&@bTD=:,JMtPeARCSq # +Wvn)7&c:OnmAI$YN;MNZ_C5;IO+&Q25=IstO;er&zln!!Fjq3!1  Q1WwSE$rH#i@<00UUY @k/43q}]Vl /nofVT[>S0*  UMO/0a_)\YXrQ$@r1l,E8s80j "n [i!sF sxwr [e6DOy\2xeHB8 ''~.M-2Z3 4*3 {WXJd1UE3O@Ouf tJ'q-@4R.RF4Zln$m\4\H%W^2F=48Y^^JU`Ytll7a`W'CRIaPx%!uJ3)5Uw#&9fs (xM4^tOnu5a$u2PQLrBD$!}i]m8gOCL|og.Y\TC\W '/'nfF h(J1 ,H^Md?(urK1NLu 3XU .q{V$cDCI `)@ N2 bwi>! [aiK3M=Ez$s.D'vuq Lo]w}-'-LGEm:SVCO 65yG|k) SU\4>B QT '?M/~Anw.-&r`y|VyS$}BQK_[Q]S +Cp1K5d~4&` QP5;*M%h`cHsPg' YP;IQMe`1" #u+  Oqmm ^o/C  \Y^V  NLV@P:AJO{.zy&7b67*!I% {1]u P ]>xj,'O9-YGSJ"NVU3-7}u:"%#RE `'L J $("Deiqg_habp?K,q=vDmZa 3gbQ 4g:d%y^d+0Odz;cqZlxnw$f~$\s0 nh4UE@ Df2rc|#m`I$qvTNB-W_!KdB`SyOvz2x vo5sdlY/dN8Ez6;u;[47w  nj. wA NlgCAL_rq~cM |Fw7&[7_F+:W=-/tD[ W:!XSF =$[\4u>X_.{k v5 $.Fyp jm~b3nckestKBj!~I .nW[T_TU~!Y8*)~2`9-|$S7b.Yq/~M037rN(|6Ml\gf yDV_*SzN)a2|k17cl1b2&?;iSJ y`{;oCUju"'3;yYQ^elRFZYH&(-;1%rmwjpl 8j6ny ,]a9-%vZM_;TU3H==22rux3=sqh: $!moQTS\STYat0?>g!fnLf/Pv4$R;";9alJW@/00-[A*g% X-+yl~=IeBlrb4-r__r_ct|I@2-ia>Wj&~q%d(a C Dhq 9~0dk5v hj?.XX_mxp^ylH6&:u:zpk *0}`bd5=X] -\T@Dox$$@P?ov#*d8uuOirJ_P J 5AYZZ`:s K ^ _XeRFRE#E^H\xDNQB?y9#t1\\EY]1 RClI+0yo%?KW&|ue~{PXe5$? }ro_}q}n#c  u+u4*kg$8g}Xa_|rrSZ)!f;6Ao;`:\Uq,2v6-;-sNlqip#H'blluDHe1sxw1!<7AIOS&5J8?)xq+Mw8x~J^bi)*i "C P `aDBse%$ VWVc  hQn\ds,iS8:781+, -2:UZgfejPq;URladZvu4i?57ibG%!9!u:7#}Ka  62TER#Z]dj y um!KfA\<7=nho]ZCJhuo2} &o7bXGN , _  PNA Q."cZ ydwGODNAME -_]z?)9&'=w2W_\N %Hb hb} V sr%^XNI \&Xuq~r(~i3nd`sa|{.|lFJCt DMI5aE:@< wl@up,W~^pqk ?!D^UIRqWu?N -1eDC#5`?+EOqBw}C}W^ G~vcWPQM(e0 z]70{qW8?1C@iNtarIy63$sR`rfQ!=*uk@[ ] gxk oq=f 0%gm$+lF er=EEayLHk @i t6E=V)Y7V@3s a}N)4m/m9xw8}:_0,_eFd2g;^/m2g7'wa>n_O\FRs4}{gDJx6x'nO\XW %zdTBye|~Q3U1!b& @\_Ehrh4?TJmK SRSID_CHFTin7&JYz08nNDlcf6WJQ&Jj6/.@M"lhv \]gsu viIEN+D)mmmIMml`XPFUp^/e&)=1/Z[yckCRB7=bGP>Q')&%)Na:"= -LK/T_EX]b ,2w6jhX2IyYa6m=5-' !A?n6MV PDcF0NA[^u2T*[MCYL fLamOHOJs:1Cn?{pq:rb'm)h%|5N6/r4c'lVr?0d> -;_wjtME5\@0K+3r/l2//c$b3 67!a|ff&fJ L WJSst;T +%  Y$-3)bc Y2|wQ3u!IHSpgn{'&5usp+yCt13u=:=Td>,2<'b3"eA= o yf@:7OmeH++=nPBNpdyp}rLIA BU8G6;gGuCPyq] 97+evK%:R zG|,n HcAcC&\M*{Tg3t!C OE XE $q/^'ueXw^F*|Et^D_z_n1)HQ[GwT*Iq#tQ1}t/(<[Qs057sQ-l 2up8H#Fn KU;/ZGqLq Q3 )6hOf;c`}K4s*~Z`C_:vdy gyY]o:!s7rW)2j=,( 5SIc>t83vrG`lB(f~]nLS&fXBOR~ XC9\:-/!hQ U6Q==L4NL=NK`$BHg[miwwrdgJL+R_B~Ey#mpDi28o#Oehcg^zt3rL \row|aW WVA6e%}QDWE3AdS0,qleQk%OK%/z8 uu}zkZm FZV){ {"RIY 9(79Md}e@y.#a[yU#}cBPEZ#:_Q9i*26!JPFU?XPSH\!N%vNPFh` Lg7IWB @.zVe9`,8$P &e6Fyj+ ZP OBe!o+fbwyY%gAW(1+') bu.I.LM6$V.2 ;l!2R2w]\DUOh,EVszD((p,7Iej?8h?*7d>^% d{5 j#T]39x/eo>"Iz/G+jT\ cq GX z!lCtK>l|tFd}WS3o6~[n7r0uD66is"rfv6[0j%ZHKj\G2  !dl3e5a)ntaur*OpbQbqQ:~v t jHQ<LHQG@^ e`fio{tWn16:`3U6S/`BsuKW?Yi7g`'J H;"zPcX~%\kITFDZAg*#29Z|a*^sWu-zB@X]g[Oa_ CJI X;?Qs#Y>-OvY 9eb[T@ es2Jcmpnf@A1O>/R{mae)y:!T ww\ (jBSr,>5$jbu;6|OQL#N$,7P018bJe9s%eFrv+!TexfUj 4ZZ({("]!c5i!0'7kgi;/4f011/4IGEMNb[9fE )ck-4+ fC}cJ[r~FEIT&)|Z:/'7S@VK,d|,oCd cA{ ai0b=.66:v9}$H]8[_#?$o _2Ouy?=5\}H+GWSrOQw&WXu+:9uMe]_3`o8 \ `mgdL>8<)]kMo:!9l!N+AIDpA{1]-0p&K.sJCT\awAO/APT2;xx`9 qXX!~=%V 0":DUs\~t{ZWpQ'L>ohE ^DHOYFgpMY= jA:ur6g%E :d/o12g8:zSM zh0*12] P@h$]u8-/w168YDD#u(ts j5H'}b)R>2 %2;]GQt:`yCj<'($&.fgy$f,cizmNl6 :Vz:^l6!jWWRiVYYAsrjoss~)#V+;SUdonT-R"qIQ1\#[V@*x3b< AqHYuylrgw n`_ZMD7iB b9V5WbRZ.UfVCaDK&X1EUC_JI' mV)o-&*q|(. ,)J O(t'3)\\)%GNVA%+{uYQ`ezh` pd}A{?eo"oi(]Fm\e[x24z#ITJ.IHDdP=&|-TA Vd< 5: }xN$[zA{kD0,:I{g[n:Yjy?f 0q3NGW'&A H zR>ATja !S('rLfL 1!N`!- BL\ r< 6Q9`9^z \OeJ]Hl2IMA\WUJ1`pS$NBHED<0hi/]BVFAxci$:{>Eikook( $&fP}z{Y*!>y\].9XU@8_V6LgnHz =`+,|"msT/M]06HrA =[E{MU0U#GPxZ7W 5_}zAo$E =Wz2LD  qB=\-&/i6kbU0Rpz_ Q9Lj\i1f57-fbl$^7*DUS8B#9,ip(v`]c-Bg("#}V^w !4BnANT 2}Q;nWCri2HI_sxlfy~{l*%asj'=AzI'WDI>. TvK 8 U!t$H'$3(*i*+~h?NWE$I   qJpt)0h?KQK/XR%i,OcR V"fFMB_X@ EEV #p??vCR=?*n>}td$%l8f!sttf;L"c]Sk g 0eo48+.R+I,tTQ 7+ca:~e\T]7)l$53KD.)SgI%`+[v0p d=cc&{lnm"jo)wenk:$0i~n}>-xeg[ writh6yeL]zem1ZRv