FreeFly FTP Client - NOT COMPLIANT YET! (To RFC's: 959, 1123, 1217, 1579, 1639)

One of the really interesting things about modern software is the invention
of the GUI.

Everyone, with the possible exceptions of men with beards and chunky
jumpers, loves it.

But Real Computer Users, such as those of us who use Linux, and friends,
tend to find the lack of command line facilities in the likes of Windows '95
somewhat alarming.

We like to see the guts of the machine, we like to be able to fiddle.

However, we still feel quietly happy about the likes of RedHat and their GUI
approach to Linux. We look peavishly at products such as WS_FTP which do the
required jobs neatly under a GUI.

I've been hunting for a decent GUI FTP program for a while. Since I can't
find one that does what I want, I've written this little baby.

Here's a few notes:

1) Command Line.

A very basic command line is in place. It's a really nasty hack, but does
support site, cd, open, and close commands, as well as the required quote.

2) WS_FTP-rip off style windows. Left click to d/l or u/l, or change dirs.
Fairly obvious. The only way to rescan a dir is to change into it again - I
find clicking on the '.' dir useful. Right clicking on a file views it, by
the way.

3) Little location windows. Click on them and change what's there to move
about.

4) The Transfer Mode thing does nothing. Nor does the Transfer Structure
thingy. Neither have servers to test on that I've seen, so I'm not really
prioritising them yet.

5) The Command Line doesn't do TAB expansion. Actually, it does, but it
expands everything by adding 'raspberry', which isn't really what you need,
I suppose.

6) The menus, while looking very pretty, do nothing, except the File menu.

7) There are no keyboard shortcuts.

8) PASSWORDS ARE NEATLY PRINTED UP ON THE SCREEN!!!

9) See above, it's really important if you ever do any non-anon FTP.

10) It tries using APSV (to make life easier for it) and SITE CASE Y (To
make life easier for you). These mean:

10a) APSV - All PaSsiVe
     All connections are deemed PASV.
     APSV returns exactly the same as a PASV command, with the exception that
     it MUST provide a new PASV connection point (AKA Listening Socket).
     From there, the client may silently ignore sending the 'PASV' command
     if and only if the APSV suceeded.
     (This is NOT covered by any RFC, though 'APSV' was suggested in RFC 1579.
     I don't see how it could be used without a great deal of work, both from
     Client authors and server authors, so this is also a test platform for
     my way of doing things.)
10b) SITE CASE Y - Request a case INsensitive filesystem
     Generally, a UNIX filesystem is case sensitive. However, the
     proliferation and general ease of use of case sensitive filesystems
     is acknowledged. I suggest that FTP server authors implement such a
     command where possible, so that:
     	RETR filename
     Where there is no file called 'filename', but there is one called
     'FileName', then assume that the request is for 'FileName'.
     This should only be used for RETR, LIST, NLST, and STAT commands, I
     think. Perhaps APPE, too?

11) All transfers are PASV, see RFC 1579.

12) No support included for IPv6, see RFC 1639.

Right. That's it. Now run it, do a File->Open (or type open, or type 'open
hostname', or whatever you feel like) and go for it!

Oh, and if it takes you longer than three days to get the hang of it, then
you'll have spent longer using it than I've spent writing it.

FreeFly is Copyright 1997 Dave Cridland.
