PCFSP Version 1.05 Novemeber 6, 1993 By Lindsey Smith Email: lsmith@symantec.com US Mail: 8276 Menlo Drive Baton Rouge, LA 70808 USA Based on FSP 2.6.5 By Wen-King Su wen-king@vlsi.cs.caltech.edu I. What is PCFSP? ----------------- PCFSP is a port to the PC of the UNIX program set collectively known as FSP. Well then, what is FSP? FSP is a TCP/IP file transfer protocol similar to FTP, the standard Internet file transfer program. With FSP you (the client) can upload and download files from an FSP site (the server) via the Internet. If you have an Internet-connected PC, I highly recommend you give PCFSP a try. PCFSP is CardWare. To be a fully registered user of PCFSP you must send a postcard to the US mail address above. I prefer something scenic or touristy... In return for the postcard, you'll be notified by Internet email (don't forget to give/email me your Internet address) of updates to PCFSP. That's not too bad is it? II. What do I need to run PCFSP? -------------------------------- Basically you need a PC that is connected to the Internet and has some sort of packet driver loaded. Exactly what drivers you need to load and what other configuration tweaking needs to be done before you can access the Internet is far beyond the scope of this document. There are far to many networking operating systems and PC TCP/IP implementations for me to give you much help in this department. Don't be intimidated by this, though. You'll proabably just need to talk to your network administrator before you begin configuring PCFSP. He/she should be able to get you up and running. Just remember that PCFSP itself is very simple to configure, it's making your system capable of running PCFSP or any other Internet access software that can be tricky. III. Configuring PCFSP ---------------------- PCFSP depends on a file called WATTCP.CFG for its configuration information. If you have used Internet access software on your PC before, then filling in the information in WATTCP.CFG should be pretty straightforward. Otherwise I suggest you get your system administrator to help you fill it in. Edit the sample WATTCP.CFG file provided. My WATTCP.CFG file is shown below as an example. my_ip=192.246.63.98 netmask=255.255.255.0 nameserver=38.145.250.2 gateway=192.246.63.1 The my_ip line should be set to your unique IP address. The netmask line should be set to the netmask of your LAN's configuration. The nameserver line should be set to a numeric IP address that will resolve IP names into IP numbers. And finally, the gateway line should be set to the address of your Internet gateway. If gateways and netmasks are Greek to you, don't worry. As I've said before, your network administrator should be able to fill in the information for you. It's really not as complicated as it might seem. The WATTCP.CFG file needs to be in the same directory as the PCFSP executables. You can, however, put the executables and WATTCP.CFG in a directory in your DOS path. As long as WATTCP.CFG is in the same directory as the executables, PCFSP should be able to run properly. Once you have WATTCP.CFG filled in, run the SETFSP batch file. This file sets the FSP_HOST and FSP_PORT environment variables to usable defaults. Now run FVER. If your WATTCP.CFG is set properly, then FVER should first print "[SEISMO.SOAR.CS.CMU.EDU : 21]". If it does not, there is either something wrong in your WATTCP.CFG file or the Waterloo TCP/IP library used in PCFSP is incompatible with your network configuration. Double check your WATTCP.CFG, then try again. If FVER still doesn't work, contact me at the email address at the top of the file. If everything has worked so far, FVER should have printed "[SEISMO.SOAR.CS.CMU.EDU : 21]". Next it should print the FSP version information for the seismo site. If FVER does not print the version information, then the seismo site may be down. Refer to the section on changing FSP sites and the site list at the end of this document. Set FSP_HOST and FSP_PORT to a site other than seismo and run FVER again. If _that_ site doesn't respond correctly, keep trying the other sites in the list. If none of the sites respond, as above, contact me at the email address at the top of file. If FVER responded properly, then your configuration should be finished. All other FSP commands should work without any other tweaking. IV. Changing FSP Sites ---------------------- Like its UNIX predecessor, PCFSP uses two environment variables to specify the FSP server you are interacting with. The FSP_HOST variable contains the IP number or name of the site and the FSP_PORT variable contains the FSP port number. As a start, some name and port pairs are included at the end of this document. FSP_HOST and FSP_PORT must be defined for any PCFSP command to work. The SETFSP batch file is a convenient way of doing this. When you want to change sites, merely change the settings of FSP_HOST and FSP_PORT at the DOS prompt like this: C:\>set fsp_host=alpha.gnu.ai.mit.edu C:\>set fsp_port=21 That's all there is to it. Whenever you change sites be aware of the fact that the site you want to access might be down. I recommend that whenever you change sites that you either run "FVER" or "FCD /" to verify that the site will respond. Also be aware that changing sites does not reset the FSP_DIR. This is another good reason to do an "FCD /" right after you change sites. V. PCFSP Command Set -------------------- Below is a description of each PCFSP command. The format is as follows: COMMAND [-switches] RequiredParamter [OptionalParameter] where COMMAND is the name of the PCFSP executable (.EXE) file [-switches] are optional command line switches that modify the behavior of the command. Switches are combinable so "FLS -l -a" is equivalent to "FLS -la" RequiredParameter is a paramter that must be specified. For example, file1 must be specified when using the FCAT command. [Optional Paramter] is a paramter that may be specified only if necessary. Usually optional paramters come in the form of multiple paths, files, or directories. For example, if you wanted to list the contents of more than one directory you could "FLS dir1 dir2" instead of "FLS dir1", then "FLS dir2" The three paramter types: A file is an actual file and not a directory. FCAT paramters, for example, must be files since you cannot literally view a directory as you could a text file. A directory is an actual directory and not a file. Dot (.) is the current directory, dot-dot (..) is parent directory, and forward slash (/) is the root directory. A path may either be a file or a directory. You can, for example, perform FLS operations on both files and directories. All FSP commands can be cleanly exited by pressing Ctrl-C, Ctrl-Break, or ESC. Setting the FSP_TRACE environment variable will cause all PCFSP commands to print hash marks as operation progresses. The SETFSP batch file will do this for you. FCAT file1 [file2] ... [fileN] FCAT is similar to the DOS TYPE command. It reads text files from the server machine and then displays them on your screen. The files are not saved on your machine as they would be during an FGET. FCD [directory] If no path is specified, FCD prints the current working directory on the server machine. If a path is specified, FCD attempts to change into that directory. FCD works similarly to the DOS CD command with the notable exception that the slash convention is reversed. In DOS you use a backslash (\) to specify the root and to separate directories. FSP, however, adheres to the UNIX convention of the forward slash ('/'). FGET [-oprs?] file1 [file2] ... [fileN] FGET attempts to retrieve files from the server machine. The * and ? wildcards are expanded. During the course of PCFSP use you are certain to run into UNIX long filenames: files that do not meet the DOS limitation of 8 characters, a dot (.), and a 3 character extension. FGET attempts to "fix" long filenames into valid, unique DOS filenames. For example if you were to "FGET Long.File.Name.1 Long.File.Name.2", FGET would create 2 unique files instead of merely overwriting the first file with the second. Also be aware of the fact that UNIX filenames are case sensitive, so READ.ME, Read.Me, and read.me are all different files. FGET has four, mutually exclusive command line switches that modify its behavior when it detects that it might overwrite a file that already exists on your harddrive. -o Overwrite the file that already exists -p Prompt on each file whether to overwrite, rename, or skip the file -r Attempt to rename the file to a unique filename to preserve the file that already exist but still get file from the server -s Skip the file without overwriting the file that already exists -? Prints the FGET usage message FLS [-1ACFLRacdfgiklqrstu?] [path1] [path2] ... [pathN] FLS lists the contents of directories in the same way as the UNIX ls command. If you are not a UNIX user, ls is an ancestor of the DOS DIR command. If you do not specify a path, FLS lists the contents of the current directory. By default FLS displays only the names of files in the directory and sorts them alphabetically. You can modify FLS's behavior using the following command line switches. -1 List one entry per line -A List all entries beginning with a period (.) except for . and .. -C Force multicolumn output with entries sorted down the columns -Dxx/yy/zz Display only files that were last modified on or after the date specified in month/day/year format -F Mark directories with a trailing /, sockets with a trailing =, symbolic links with a trailing @, and executable files with a trailing * -L For symbolic links, list the file or directory the link references rather than the link itself -R Recursively list subdirectories encountered -a List all entries; by default, entries whose names begin with a period (.) are usually not listed (see -A) -c Use time of last file status change for sorting or printing -d List only the name (not the contents) of directory arguments. Often used with -l to get the status of a directory -f Turns off entry sorting -g Include the group ownership of the file in a long output -i Include the i-number of each file in the first column of the report -k Print file sizes in kilobyte blocks -l List in long format, giving mode, number of links, owner, size in bytes, and time of last modification for each file (see -u). For symbolic links, the pathname of the linked-to file is preceded by "->" -q Print nongraphic characters in file names as the character '?' -r Reverse the order of sort to get reverse alphabetic or oldest first as appropriate -s Give the size of the disk blocks (in kilobytes rounded up to the nearest kilobyte) allocated for each file. This number depends, in part, on the block size of the disk partition the file resides on -t Sort by time modified (latest first) instead of by name -u Use time of last access instead of last modification for sorting (with the -t option) and printing (with the -l option) -? Prints an abbreviated usage message FMKDIR directory1 [directory2] ... [directoryN] FMKDIR attempts to create the specified directories. Be aware that you may not have rights to create directories on server machines. FPRO [+c] [-c] [+d] [-d] [directory1] [directory2] ... [directoryN] FPRO without the +/-c or +/-d arguments displays the directory protection mode of each path. You can modify each path's directory protection mode with the following switches: +c give others permission to create new items -c deny others permission to create new items +d give others permission to delete old items -d deny others permission to delete old items FPUT file1 [file2] ... [fileN] FPUT attempts to upload the specified file(s) to the server machine. The * and ? wildcards are expanded as necessary. FRM file1 [file2] ... [fileN] FRM attempts to delete the specified file(s). The * and ? wildcards are expanded as necessary. Be aware that you may not have rights to delete files on server machines. FRMDIR directory1 [directory2] ... [directoryN] FRMDIR attempts to delete the specified directories. Be aware that you may not have rights to delete certain directories on server machines. FVER With no parameters, FVER returns the server's FSP version information. If specify any parameters, FVER prints the PCFSP version information. V. Additional PCFSP features ---------------------------- FSP_TRACE Setting this variable will cause PCFSP commands to print hash marks periodically during the course of operation so you know that the operation is proceeding. The marks, the letters 'R', 'I', and 'E', each have a certain meaning. 'R' is printed the first time the client listens for a response from the server. An 'I' is printed for each listen after the first. E means an error has occured and PCFSP will retry the last operation. You can set (enable) tracing or unset (disable) tracing with the following commands. C:\>set fsp_trace=1 (to enable) C:\>set fsp_trace= (to disable) FSP_LOG Setting this variable to a filename will cause FGET to log all transactions it makes. You can set (enable) tracing or unset (disable) tracing with the following commands. C:\>set fsp_log=c:\fsp\fsp.log (to enable) C:\>set fsp_log= (to disable) VI. FSP Site List ----------------- This list is by no means complete. It was merely culled from the alt.comp.fsp Frequently Asked Questions (FAQ) file. There is a list, maintained by , which you can get hold of by fsp from ftp.Germany.EU.net (port 2001):/pub/lists/fsp-servers. Various other people produce lists as well: have a look around! You are encouraged to post site information to alt.comp.fsp, and if you post in the format below, most people will be able to slurp your list straight into their front-end programs. There's an unofficial standard for the format, which you can find on taxus in the file "fsplist.std". In the meantime, here's a list to get you going. 128.52.46.11 21 alpha # GNU Alpha releases 131.231.19.21 21 genie # small UK site 192.76.144.75 2001 germany # big German archive 131.215.131.148 21 mosaic # BSD386/Usenet 128.2.206.138 30 seismo # main FSP code site 146.169.2.1 21 src # big UK site 129.177.30.10 9000 taxus # fspadm, fsp-shell tools 131.155.2.71 21 terra # big Netherlands site 18.172.1.2 21 tsx # linux fsp.warwick.ac.uk 21 warwick # Computer Underground Digest 128.252.135.4 21 wuarchive # WUStL archive site VII. PCFSP and 4DOS ------------------- 4DOS is a wonderful COMMAND.COM replacement that implements several features that generic MS-DOS does not such as command aliasing and scrollback. The FGET command automatically detects if you are using 4DOS. If you are, FGET creates an entry in the DESCRIPT.ION file for each file that you get. The entry contains the original long filename before FGET converted it into a DOS compatible filename. If you take a look at the provided SETFSP.BAT there are few ALIAS commands REM'd out. If you are using 4DOS I highly recommend removing the REMs and using the aliases. I find they are very handy. VIII. End Notes --------------- Hopefully this document has given you enough information to configure and use PCFSP without too much fuss. If you run into problems or bugs or have questions or comments, don't hesitate to email me at the address at the top of the file. In the future I'd like to distribute a troubleshooting guide, so if you run into a problem and then solve it, let me know so I can include your solution. There are two discussion groups at present for FSP. The first is the alt.comp.fsp Usenet newsgroup and the second is an Internet mailing list which can be subscribed to by sending mail to listserv@germany.eu.net. If you have any ideas or bug reports for PCFSP, drop me a line. All suggestions are appreciated. Finally, many thanks to Keith Grimes for all the testing and coding he has done to PCFSP. Many of features were conceived and/or implemented by him. IX. Legal Stuff ---------------- PCFSP is provided as is and without warranty. The author is not liable for any damage occuring from usage of this software. The PCFSP software package is Copyright 1993 by Lindsey Smith.