NFTP : New File Transfer Protocol Client Version 1.02
Copyright (C) 1994-1997 Sergey Ayukov


Home page of NFTP is http://crydee.sai.msu.su/nftp/index.html
Check it for new versions, updates etc.

Contents

  1. Introduction
  2. Installation
  3. Quick start
  4. Usage
  5. Keyboard commands summary
  6. Troubleshooting
  7. Licensing information
  8. Acknowledgements
  9. Registration
  10. Contacting the author
  11. Version history

INTRODUCTION

NFTP is a text-mode ftp client for OS/2. Comparing to popular ncftp, it has a number of enhancements:

The biggest advantage (and one of the main desing concepts) of NFTP is speed and effectiveness of text-mode keyboard user interface.

OS/2 4.0 (Merlin) has introduced concept of 'FTP Folder', similar to LW-FTP and offering seamless integration of FTP client and Workplace Shell (via WPS class). They are funny and easy to use, but play and work are different things. If you really need to transfer files regularly and in large quantities you'll look for more useful and less fancy program than 'FTP Folder'.

However, NFTP isn't free as ncftp. But registration fee is only US$ 20 -- and you'll get all future versions and support by e-mail at this price! See registration details below.


INSTALLATION

  1. Requirements are
  2. Installation. Unpack archive nftp*.zip into some directory. You can also unpack it into the directory where it will reside. Run install.cmd. After answering some questions necessary files will be copied to the directory you specified and your WPS desktop will hold NFTP folder. Inside it you'll find "NFTP" (executable), "NFTP Manual" and other icons (most of which are self-explanatory). You probably already done that because you're reading that "NFTP Manual".

    If you want to install NFTP by hand (without install.cmd), copy all files into the directory of your choice (eg, "d:\apps\tcpip\nftp"), rename nftp.in into nftp.ini, load it into your favourite ASCII text editor (eg, TEDIT shipped with Warp) and insert your e-mail address (it will be used as a password for anonymous logins) at the appropriate place:

              anonymous-password=
          
    Then decide where you will keep your bookmarks and transfer history and set corresponding variables accordingly. If you like to launch programs from desktop, create program object for NFTP. Rename supplied nftp.bm file to nftp.bmk and put it into the directory which you've chosen in nftp.ini. BMKCONV.CMD can be used to convert old bookmarks file (nftp.mrk) into new format (nftp.bmk).

    The language NFTP uses is determined by environment variable NFTP_LANG. It should be set to the name (without extension) of corresponding DLL file. E.g., if you want to use Japanese version, you should use

              set NFTP_LANG=japanes
          
    This statement can be put to config.sys or to the batch file invoking nftp (install.cmd does exactly this). If you only need English version you may omit this variable.

    install.cmd creates Workplace shell object to run NFTP. This feature can be useful even you are die-hard command-line user (see below). NFTP can run in a fullscreen session or in a VIO window. Installation script sets it to run in a window, and window will not be closed automatically after exit -- this can help to diagnose problems. Turn it off when everything works as expected.

    If somehow WPS NFTP folder is lost, you can create it again with makeobjs.cmd.


QUICK START

After installation, run nftp.cmd (from command line or WPS object). If you're launching NFTP from WPS object created by installation script you will be asked to enter "FTP server to log in"; simply press ENTER now. You should see list of bookmark folders on the screen. Use cursor keys to select one of them and press ENTER. You are now inside folder; you can return to folder list by pressing Esc or left arrow key. Select one of the sites listed in the folder contents; press ENTER again. If everything is set up correctly, you'll see client-server negotiation and then finally list of files and directories on the ftp server you've chosen. Hit SPACE to view control connection window (and it is scrollable!), TAB to view local files/directories. Return to remote directory view by pressing space/tab another time. Move pointer with cursor keys, press ENTER on a directory to enter it. If you know name of the file (or first symbols of the name), type it directly: NFTP will try to position cursor on a file which name starts with these symbols. Select files to download with INSERT or simply press F5 to transfer single file. To upload file to server, switch to local files view (with TAB), select file(s) and press Shift-F5. To view local or remote file, move pointer to it and press F3 (of course, remote file will be downloaded first -- that will probably take some time). Press F10 to log off and exit NFTP.


USAGE: LAUNCHING NFTP

You often already know where the file you need right now is located. Let's suppose, say, you want to retrieve RFC 959 from

       src.doc.ic.ac.uk:/pub/rfc/
   
Launch nftp in the following fashion:
       nftp  src.doc.ic.ac.uk:/pub/rfc
   or
       nftp  src.doc.ic.ac.uk/pub/rfc
   or even
       nftp  ftp://src.doc.ic.ac.uk/pub/rfc
   
After logging in into src.doc.ic.ac.uk nftp will change directory for you to /pub/rfc. Having directory listing before you, start typing 'rfc959': cursor will be positioned on rfc959.txt.gz. You may now download required file.

The command line format for NFTP is:

      nftp [hostname[[:[port]]directory]   [userid]
   or
      nftp -{F|f} hostname[:port]filename]
   
Second format is used to download single file; use 'F' if you want to log off afterwards and 'f' if you want to stay connected. "hostname" is the name of ftp server ('src.doc.ic.ac.uk' in the above example), ":" can be omitted, "directory" is remote directory ('/pub/rfc' in the above example), "port" is port number (don't use it if you don't know what's it). If you have an account on ftp server (i.e. you're not anonymous user), you can specify your userid in the command line. You will be asked for a password. An important note -- there shouldn't be any spaces between hostname and directory! Other examples are:
      nftp private.crlf.net:7500/users    (nonstandard port)
      nftp ftp/pub                        (domain suffix omitted)
      nftp 128.128.128.128:/mydir         (IP number instead of host name)
      nftp lnfm1.sai.msu.su/home/asv asv  (login with explicit directory and 
                                           real password)
      nftp -F ftp.sai.msu.su:/pub/os2/internet/ftp/nftp100.zip
                                          (retrieve NFTP 1.00 and then log off)
   

Specifying directories in a command line is a pretty useful feature: when you've found some reference, paste it directly into the command line and you'll get right into the place without typing anything except Ctrl-Ins and Shift-Ins!

NFTP will try to use any text mode you have set before starting it. Only 80 column modes do work however.


USAGE: LOGGING IN AND OUT

NFTP has several ways to choose ftp server:

To log off, use Ctrl-K; F10 will log off and exit NFTP.


USAGE: BEHIND THE FIREWALL

NFTP can be used if your machine is located behind the firewall. There are several kinds of firewalls (and may be even other types not documented here). Unfortunately, I cannot test NFTP with any type of firewall because I don't have one. So I have to rely on independent testers. If NFTP does not work with your firewall software, please contact me and I will try to fix the situation. I would also appreciate your report about whether NFTP works with your firewall, how your firewall software is called and to what type it belongs (see below about firewall types). Here are six types of firewalls supported by NFTP:
  1. SITE hostname
    Firewall host, userid and password are required. User is logged on the firewall and the remote connection is established using SITE remote_host.
  2. USER after logon
    Firewall host, userid and password are required. User is logged on the firewall and the remote connection is established using USER remote_userid@remote_host
  3. USER with no logon
    Firewall host required, userid and password are ignored. USER remote_userid@remote_host is sent to firewall upon initial connection.
  4. Proxy OPEN
    Firewall host required, userid and password are ignored. OPEN remote_host is sent to firewall upon initial connection.
There is another kind of firewall, which is not specifically configured. A router-based firewall is one which allows connections to be established in one direction only. The router itself is invisible to the user. However, the default mode within FTP is that "data" connections are established by the server rather than the client. To work with a router-based firewall requires using the PASV Mode of FTP.

Currently, NFTP does not work with Squid-style ftp proxy servers.

You decide of what type your firewall is, and then edit NFTP.INI setting appropriate variables:

There was a report that NFTP works at least with firewall of type 3 correctly.

USAGE: NAVIGATING REMOTE SITE AND LOCAL DIRECTORIES

With NFTP, you work with remote directories like using some kind of filemanager. List of files is scrollable; you can view, delete, rename files and directories, create new directories, sort file list by different criteria, mark and unmark files, quickly search for file if you know its name, change directories etc. Some actions will succeed only if you have sufficient rights, of course. Most anonymous servers allow to create directories and upload files only to special 'incoming' directory; in other directories you can't manipulate directory contents.

Complete list of available commands is in the Keyboard Commands Summary section. You can also view it while working with NFTP - just press F1. Ctrl-F1 displays context-sensitive help, i.e. keystrokes valid in the current mode. Shift-F1 shows general information about program usage.


USAGE: TRANSFERRING FILES

Basically, you mark files with Insert key and hit F5 to download, Shift-F5 to upload. Each key of the pair F5/Shift-F5 only works in corresponding mode, i.e. you should be looking at remote files to download something and local files to upload something. Modes are switched with Tab. Marks are kept while walking on remote directories; you can tag many files from many directories and then download them all with Alt-F5. If you just want to transfer a single file, don't mark anything, just get cursor to that file and hit F5/Shift-F5. Another useful set of keys is Ctrl-Greyplus/Ctrl-Greyminus: first of them marks all files in the current directory, second removes the mark.

During transfer, you can skip files (S) and interrupt transfer (Q). Response to these keys is usually slow if server is very far away and link is slow. Not all server software handles transfer interruption. I will try to improve this part of NFTP in next versions.

To look at the file, use F3 (fast internal viewer). If you happened to love some particular file viewer you can use it instead (edit NFTP.INI to set name of the viewer and then use Alt-F3). When using internal viewer, files are cached in memory (so if you'll want to look at the file again, NFTP won't transfer it again).


USAGE: CUSTOMIZING NFTP

Almost all customizations are done through NFTP.INI. This file usually resides in the same directory as NFTP.EXE itself. However, you can also place it into PATHed directory or current directory.

The file NFTP.INI is plain ASCII file and can be edited with any ASCII editor (e.g., "System Editor" or "TEDIT"). Lines starting with semicolon ";" are comments; empty lines are ignored. The file itself holds comments about configuration and parameter meaning. NFTP folder has an icon which starts OS/2 System Editor and loads NFTP.INI.

Note that only one entry in NFTP.INI is required -- your e-mail address (anonymous-password). Installation script sets some others. Do not forget to remove leading ";" when doing customizations.

To get rid of overhead of parsing of text initialization file, NFTP converts NFTP.INI into NFTP.BIN. This operation is done only when necessary (i.e. when NFTP.BIN does not exist or older than NFTP.INI). Conversion is fully automatic and done by NFTP-OPT. Please note that file NFTP-OPT.EXE should be placed into the same directory as NFTP.INI or into the directory listed in PATH environment variable. In general, you shouldn't worry about it.

Complete explanation of all parameters in NFTP.INI is in NFTP.INI itself. I feel it is more appropriate place than this manual; it makes little sense to duplicate information here.

Parameters can be of one of three types: integer, boolean and string. Integer values are represented by integers and can be prefixed by sign. Boolean values can be specified as "0", "n", "no" (false), "1", "y", "yes" (true) (without quotes). Different capitalization (e.g., "Yes") can also be used. Strings are represented by character sequencies enclosed into double quotes; if value contains only letters, digits and minus sign you can safely omit quotes.


TROUBLESHOOTING

(this section is desperately incomplete)
Q: nftp says "emx not found".
A: You don't have emx runtime package installed. Read INSTALLATION section again.
Q: nftp crashes, saying "core dumped".
A: If you can repeat situation, please send me details of your setup (nftp.ini, nftp.mrk, keystrokes which caused fault).
Q: nftp seems to be hanging, no activity is visible
A: If this happened during transfer, try "Q". Otherwise terminate it with Ctrl-Break.

LICENSING INFORMATION

The size of files that can be transferred with free version is limited to 500KB. If you want to exploit full capabilities of the Program and receive support by e-mail from author, you have to register your copy. See section Registration below. If you don't need neither to transfer files larger than 500KB nor support you don't have to register. Using unregistered version is perfectly legal; the above conditions apply.

License for unregistered version

The Program (NFTP) is owned by Sergey Ayukov and is copyrighted and licensed, not sold. The term "Program" means the original program and all whole or partial copies of it.

You may:

You may not:

The Program is provided `as is'. Any express or implied warranties, including, but not limited to, the implied warranties for merchantability and fitness to a particular purpose are disclaimed. Sergey Ayukov will not be liable for any lost profits, lost savings, incident, special, or indirect damages or other economic consequential damages, even if Sergey Ayukov has been advised of the possibility of such damages. Some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitation or exclusion may not apply to you.

License for registered version

See License for unregistered version, plus:

You may:

You may not:
Okay, I am not a lawyer, so may be I forgot something important, but it doesn't matter ;-)

ACKNOWLEDGEMENTS

Many people have helped me in creating and improving NFTP. They are (in alphabetical order):

Special thanks to Eberhard Mattes, author of emx/gcc development system, and, of course, all people at Free Software Foundation who created GCC, GNU C compiler and other GNU software.

This program is packaged using Info-ZIP's compression utility. Info-ZIP's software (Zip, UnZip and related utilities) is free and can be obtained as source code or executables from various bulletin board services and anonymous-ftp sites, including CompuServe's IBMPRO forum and ftp.uu.net:/pub/archiving/zip/*.


REGISTRATION

Registration fee is US$ 20. For this price you'll get free updates (i.e. all future versions of NFTP) and support from author by e-mail. Single registration covers all national language versions, so if you want to run, say, English and Chinese versions, you'll have to pay only once.

As of 15 Apr 1997, there are two ways to register. You might view NFTP homepage to check whether new methods of registration are available. Registration via OS/2 "Must-Have" utilities at SoftTouch Systems hasn't materialized (yet).

In any case, whether you are registering via BMT Micro or directly with author, fill in 'regform.txt' supplied with NFTP and e-mail it to myself (asv@sai.msu.su).

  1. The first one (and mostly safest, reliable and fastest) is to register via BMT Micro. They accept payment via variety of ways. I recommend this method. For ordering and payment information, please read file order.frm in the NFTP directory.
  2. If somehow purchasing via BMT Micro is not suitable for you, you may register directly with myself. The biggest problem is how to send money to Russia. Right now, I can think of two alternatives:
    1. Direct bank transfer (US dollars only). Requisites of my bank are:

      SABR RU MM 100
      Savings Bank of the Russian Federation,
      Moscow Bank corr. acc. 081000031

      Khamovnicheskoe branch N 7812/0495
      account 3800170500199

      This way is reliable but not fastest: it can take 2 weeks for money to reach my bank, and you'll wait all that time. Your bank might also ask unreasonably large fee for transfer, especially when converting from other currency.

    2. Send cash in a letter. This way is highly discouraged and I cannot recommend it. I also can't be hold responsible for bank notes lost in mail. I don't know whether our mail is notorious for losing money sent this way, so there's nothing yet to fear here, but I repeat: if you have sent money in mail to me and nothing arrived, I am not responsible. Sorry. Please avoid this way. If you are forced to it, any major currency will do; please add 2% for conversion if sending something different from US dollars.
    After sending money, inform me by e-mail and don't forget to attach registration form! When my bank will tell me that money has arrived, you'll get your registration key by e-mail.
In any case, if you're not sure, please do not hesitate to contact myself.

For people living in Former Soviet Union countries registration costs only one postcard. Send nice postcard (preferably with your home town if it's not Moscow) enclosed in envelope to

Sergey Ayukov
Sternberg Astronomical Institute
Universitetsky pr., 13
Moscow 119899
Russia
You will receive your registration number after sending registration form by e-mail. This form is in the file 'regform.txt' supplied with NFTP.

CONTACTING THE AUTHOR

You can reach me at asv@sai.msu.su.

Where to find new versions:

  1. anonymous ftp: ftp.sai.msu.su:/pub/os2/internet/ftp/
  2. WWW: http://crydee.sai.msu.su/nftp/
  3. ftp-os2.cdrom.com, hobbes.nmsu.edu, ftp.leo.org

Note that first site is managed by myself so it always contains the latest version while Hobbes and cdrom archives sometimes become outdated.

Sorry for any typos and bad grammar. I will gladly accept any corrections to this manual.

Actually, I guess few people read this rather stupid manual which describes relatively simple software. I bored to write it (smile). Do you think that improvements are necessary? In what parts? Please tell me.


Sergey Ayukov (asv@sai.msu.su)