WARNING: This is (still) a BETA Version !!! Use at own risk !!!
Hello,
This is Release 0.564 of YFtp. Look at the end of this file to see what's new.
YFtp is a graphical FTP-Client. Some of its features include:
- Yftp now supports term ! (in a seperate binary release, see below !)
- filesize in the browser.
- a persistent directory cache, that lasts between sessions
- automatic reconnect after lost connection
- reget !!
- directories and README's have higher priority than filetransfers
(filetransfers are interrupted, when these have to be transferred)
- U can set a default dir for every ftphost (e.g. /pub/next)
- Only directories that have been modified are retransferred, when
the cache times out.
- NEW: A Services menu entry !!
For example, if Jolly writes in comp.sys.next.announce
about his new toy:
"This program can be found on ftp.informatik.uni-muenchen.de
in /pub/comp/platforms/next/Tools/workspace/FastConsole.0.02.NIH.bs.tar.gz "
just: - select that line
- choose from the menu Services->Yftp->Get
and Yftp will login to that host, get the file and you can try it out :)
- several other nice stuff, which is too small to mention here
Changes since 0.447
- Processes Panel shows the queue of transfers
- Kill Button to Abort the current transfer
- "ask for password" option when doubleclicking host
Bugs fixed since 0.447
- crashes when downloading many files at once
- NLST failed
- rereading large directories caused it to crash
- crash when "timeout (900 seconds): closing control connection."
Some of the non-features (or not-yet-features) are:
- interrupting filetransfers sometimes doesn't work (hell knows why)
- Still no nice preferences.
- Still no 'put file'
How to use:
After you start the program, you see a list of default ftphosts.
You can add hosts to the list, remove and rename them, and, most
important, login to them :)
(You can login to as many hosts as you want at the same time, but if
you login to the same host more than once, the display isn't updated
correctly. Have to fix that. And please, don't start Yftp twice !
You may corrupt your cache and configuration data if you do)
Clicking login brings up a login panel. Here you can enter the userid
and password, you want to use for the ftp transfer. Password is entered
invisible. Or you can just use the default setting, which is "ftp"
for the username, and "yourusername@" for the password. You can also
change the default login for this host. Please remember, that the default
password you set is stored unencrypted on disk, which is generally not
a good idea. The password you enter for login (not the dafult) isn't stored anywhere.
(at least, that's what I tell you :) If you don't trust me, look at the
source)
After this you get a window with a big browser in it. In the statusline,
you will probably see something like "Connecting to xxx.xxx.xxx.xxx".
After Yftp has connected to the ftpserver and logged in successfully,
it transfers the root directory and displays it. You can now
browse through the whole directory structure of the server.
Every directory is only transferred once, and then put into the cache.
There are three different arrows that indicate directories:
thin black : you have never visited this directory before, it
will be transferred, when you select it.
normal NeXT arrow : this dir is already in the cache, nothing will be
transferred, when you click on it.
double arrow : this dir is already in the cache, but probably out
of date, so it will be retransferred when clicked.
In addition there can be two icons in front of every file. The gray
square one means, this file is in the queue of those to be transferred,
and the round one means, this file is new or has changed
(after a cache refresh). This is very useful with the 2_WEEKS_NEW
directory on peanuts :)
If you doubleclick a file, it will be copied to the local harddisk,
and "open"ed afterwards. If you select one or more files, and then
press GET, the files will only be copied, but not opened. If you
doubleclick directories, they will be transferred, whether they are
in the cache or not.
Directories (and files with README in its name) have generally
priority over normal files. When a filetransfer is in progress,
and directory should be listed, the transfer is interrupted, and
resumed afterwards.
MainMenu:
"set local path" allows you to choose a local directory, where the
ftp files are saved.
"set remote path" remembers the current remote working directory, so when
you later connect to that same host again, you will end up in the same
directory.
Other odd stuff:
When the connection somehow breaks, or is lost, YFtp tries to reconnect
and resume the filetransfer. (up to three times)
The double arrow (for directories) actually represents two cache states. It appears
after the cache date for the directory times out (which is defined by UPDATETIMEOUT
in FtpDirectory.m and is currently set to three hours) This doesn't mean, that the
whole directory is retransferred every three hours ! First the modification date
of the remote dir is compared to the one in the cache, and only when they differ,
its acually transferred. (because the modification date is only accurate to the
minute, it can happen, that you miss modifications that appeared directly
after you transferred the directory. If you think this happened, you can
manually retransfer it. In any case, a directory is automatically retransferred
after 2 weeks (FORCEDUPDATETIMEOUT)).
Services and such: When you use the Services Get command, Yftp
tries to find out what file and hostname you want in the following way:
First it tries the kind used by WWW, URL like "ftp://ftp.next.com/pub/NextAnswers",
then it tries the old form most people use, like "ftp.uu.net:/pub/linux"
and then it looks for filename and hostname seperately just somewhere in the
text. Dont rely on Yftp to figure out for you what you want, select as few
text as possible, the parser is actually very stupid and creates funny hostnames, when presented with too strange texts.
Term:
If you want term support, you either have to recompile the application with term enabled (see below) or email me. It's not compiled in anymore, because most people don't need it, and it makes the distribution a lot bigger.
I have been told, It_Just_Works(TM). It shouldn't break anything for people who
don't have term.
But I have seen some strange crashes, and I don't know why. I assume
term isn't threadsafe, but I don't know about it. The term people didn't
answer my question till now, so if anybody would like to investigate this
any further, I would appreciate it.
Compilation:
The newest version of Yftp can always be found on ftp.cis.uni-muenchen.de:/pub/yoda/.
If you want to compile Yftp for yourself, you need MiscKit and term(optional) installed.
Yftp now uses term. If you want to compile with term, you have to change
two things:
- define TERM in FtpSubThread.m
- add the libtermnet.a library to the project.
Thanks to (in no specific order):
Scott Hess for DirPanel
Jayson Adams for NiftyMatrix
NeXT for making this wonderful black computer and then dropping it
somebody unknown on the net for the icon
Trey Matteson(NeXT) for the Graph example
Gatorftp for making me want to write this program
Gene Roddenberry for Star Trek
Jolly and other people on the net for suggestions and help
Don Yacktman and all the other people for MiscKit (esp. MiscCircularSlider)
soon H. Scott Roy for IconKit :-)
My Mother for being there
And all other intelligent lifeforms in the galaxy (are there any ?)
And:
If you have any comments, suggestions, bug reports, or unused 100$ bills
flying around, they are greatly appreciated !!
Have fun, and may the force be with you !
yoda@cis.uni-muenchen.de (Marc Guenther)
---------
CHANGES LOG:
1.2.94
- I received my first remote directory listing !!! :)
15.2
- can transfer files now
16.2
- added cache
- added HostPanel
17.2
- added LoginPanel
18.2
- added DefaultLoginPanel
- NiftyMatrix now works
23.2
- added setting of localpath
24.2
- added default localpath
25.2
- added alphachannel to icons
26.2
- multiple slections now work
27.2
- cleaned up socket code, now reconnects, when connection closes
- transferred files are shown
28.2
First RELEASE 0.150
12.3
minor bug fixes:
- localpath wasnt saved correctly (forgot to rename all the variables after doing a copy paste :)
- now doing ls -FLLL instead of ls -F to resolve symbolic links in the ftpserver (there are 3 L's coz peanuts is using a modified ls that resolves only directories, but not files. This is the behaviour I would need on all servers !!)
20.3
minor bug fixes:
- didnt reconnect when getting a directory
- crashed, when a file became a directory on the server
--> RELEASE 0.157
19.8 (Uh, has been a long time, eh :)
- Now has a progress indicator (finally)
- And you now can see the filesize (but only AFTER you started transferring
the file, heh) :(
- uses MiscKit (thanx Don and all you out there)
- minor bug fixes
- Now has a Get Button (which doesnt open the retrieved file, and allows to
retrieve more than one file at once)
- for debugging: "clear cache" only cleans the directory cache, "purge cache"
also removes the configuration and hosts.
2.9.94 (0.212)
- READMEs also interrupt filetransfer (not only directories)
- filetransfer progress also shown in app icon
- DO doesnt loose messages any more (that was a easy one :)
- window positions are saved
- regets after lost connection
3.9.94 (0.243)
- directories are only reget, if the date and time changed. (VERY USEFUL :)
5.9.94 (0.273)
- filenames with dashes '-' in it didn't work (due to a bug in Nexts PDO stuff).
- added a writing cache panel
- added panel to save a file under a different name, if its already exists.
7.9.94 (0.295)
- code changes to add services (lex, cd to unknown directories)
8.9.94
- services work !!!!! At least with the examples I tried :)
I dont know, if the lex parser does what its supposed to do.
- This whole program needs a majer code cleanup !
11.9.94
- added FORCEDUPDATETIMEOUT
-> RELEASE 0.340
19.9.94
- bug fixes:
- STAT is only used when implemented
- app crashed, when connection was closed directly after login (cs.orst.edu)
-> RELEASE 0.351
20.9.94
- app deactivates itself, when "open"ing files
22.9
- SIZE not implemented error gone, progressView now shows "unknown"
-> RELEASE 0.355
30.9-25.10
- bugfix: after interrupting filetransfer file was replaced instead of reget
- added parser for ls -l !!!
- filesize now shown in the browser
- function to convert 123456 -> 123K
- configuration file now has a version number
- can now read old configuration files (from .157 and .355)
- browserCell display was sometimes corrupt
- cache timeout handled more intelligent (set from the parent directory listing)
- rename/remove host now works
29.10
- added term support (difficult :)
- added default directory cache
10.11
- Suggestion menu entry
11.11
- checking and statusline of directories was a total mess.
12.11
- added reading of GatorFTP configuration :)
- progressView only updated every 150ms
13.11
- doubleclicking a host will login directly
- browser deosn't JUMP anymore !!!! (I hate NXBrowser !)
- global Preferences
16.11
- browser now behaves like the Workspace browser !!
(after hours and hours of hacking......this was awful !!!)
27.11
- small bugfixes
- now compiling with MiscKit 1.2.8 and term 2.2.8
- RELEASE 0.447
7.4.95
- changes in FtpSubThread.m:
- TYPE and CWD only done when needed
- removed "illegal stat" warnings
- much nicer getLineFromSocket routine (but probably doesn't work correctly)
- PDO messages not send all the time anymore (only send every half second,
should reduce CPU time while transferring files)
- added queuewindow (thanx to Peter Lount)
24.6.95
- compiling wth MiscKit 1.5.0
- quad fat, but without term compiled in
- service now recongizes hosts only
1.12.95
- NLST failed bugfix
- doesn't crash when downloading lots of files at once
- too short filenames were skipped
- removed checking of directory status (which caused directories to be read twice sometimes)
- changed appiconsize for NS4.0
- Gator menu entry
- appIcon correctly displayed
- progressview correctly displayed
- file::/... recognized (like ftp://...)
- nicer display of filesizes in browser
- crash when fetching large directories
- option to prompt for password, when doubleclicking host
- Kill button in Processes panel
- disconnect by closing window (not very nice, though)
- lot of nibfile changes (thanx to Carlos Salinas)
- filesize to the right of filename
- fixed crash when "remote server closed connection"