ftp.nice.ch/pub/next/connectivity/filetransfer/Yftp.0.9653.README

This is the README for Yftp.0.9748.NIHS.b.tar.gz [Download] [Browse] [Up]

===============================================================
WARNING: This is (still) a BETA Version !!! Use at own risk !!!
===============================================================

Yftp 0.9653 fixes some Bugs from the previous Version 0.9626.

The newest Version will be linked to my homepage at:
http://www.vuse.vanderbilt.edu/~katzlbt/

If anyone wants to contribute a User Manual please do so 
and send it to me (rtf is fine).

peanuts.leo.org with its nonstandard ls -L still does not work,
but all mirrorsites work ok. I can't figure out if a symbolic
link refers to a file or a directory. ls -L usually should 
resolve those links, it doesn't at peanuts. Pervious Versions
seem to have defaulted to directory.

Windows NT hosts should work now too.

The crashes are hopefully gone (and the memory leaks back).

I got complains about colors, so I default them to Black & 
White now.

Also Performance should be better now (hopefully)
The max transferrate (localhost to localhost) is about 100KB/s.	

Cat.

===============================================================
WARNING: This is (still) a BETA Version !!! Use at own risk !!!
===============================================================

Please also read the ReleaseNotes for Yftp 0.96 below !

New features:
	Find Panel !!
	Newer (very beta yet).
	Host tags.
	Keep alive.
	Bug fixes.

Known problems:
    peanuts.leo.org has updated their ls/dir with something that
	ignores ls -laL (especially the -L option to ls). This makes
	it impossible to determine wether the target of the link 
	is a file or directory. Please use a mirror site like
	ftp.eunet.ch for now.
	
Please check out the Info -> Preferences menu if you have 
got problems with colors or dot-files. 

Yftp 0.96 will update your directory cache !!
------------------------------------------------------------
If you already have a ~/.NeXT/.YFtpDirectoryCacheB then make 
a backup NOW!
------------------------------------------------------------

To protect you from loosing your cache when running an older 
Version after the newer one Yftp will write a new one.
It uses ~/.NeXT/.YFtpDirectoryCacheB you may whish to delete
the older ones after you will be sure that you don't want to 
switch back to an older version.

---------------------------------------------------------------
Original README by Marc Guenther
---------------------------------------------------------------

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.
MiscKit is available on:
    cs.orst.edu:/pub/next/sources/objects/MiscKit1.2.6.tar.gz
    sonata.cc.purdue.edu:/pub/next/submissions/MiscKit1.2.6.tar.gz
    ftp.et.byu.edu:/pub/next/misckit/MiscKit1.2.6.tar.gz
    ftp.informatik.uni-muenchen.de:
        /pub/comp/platforms/next/Developer/objc/misckit/MiscKit1.2.6.s.tar.gz
or whatever version is the newest.

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)

*****************************************************************************
*** VERSION  by Thomas Katzlberger (cat)                                  ***
*****************************************************************************

WARNING: This is (still) a BETA Version !!! Use at your own risk !!!

Yftp 0.96 will update your directory cache !!
This might fail in some cases. It seems to work most times.
The old cache will be preserved in your .NeXT directory (hopefully).

Happy ftping,
katzlbt@vuse.vanderbilt.edu (Thomas Katzlberger)

====================
Shortcuts and hints:
====================

If you hit the Get button on a directory Yftp will now recursively fetch it.
    Don't try this on the root directory of a Server, you will regret it.

If you pause the queue Yftp will only fetch files<=20KB and directories.

Yftp will not fetch directories with more than 50 entries by default.
    Double click them. (This is to avoid fetching big user directories).

Files that changed their date and new directories will get a "NEW" dimple.
	It will get cleared on download or manually. (any better ideas ?)

Don't forget that you can Control-drag FTP Host entries in the browser !

--------------------------------------------------------------
Changes (as far as I caputred them) from Version 0.564 to 0.96:
--------------------------------------------------------------

Working file: Controller.m
Color pref for untouched dir.
Host Tag-Strings added.
Added security to prevent Users running an old version of Yftp after a new one.
Dircache now writes to a new file as Typedstreams seem to have problems ??
Yoda's hint to use thread_switch SWITCH_OPTION_WAIT imporoved download time.
Colors added (MAD!) !!!
Abort fixed (hopefully). Put fixed. Minor tunings.
Reconnect put in. Some bugs fixed.
=============================================================================

Working file: DirPanel.m
Cvs Log lines added.
=============================================================================

Working file: DragDestinationButton.m
=============================================================================
cvs log: nothing known about EvilButtonCell.m

Working file: FtpBrowserCell.m
Directory arrows changed.
Evil ERRROR!!!!! message that caused tons of email demolished and harmlessified.
Error message in debugging version only.
Colors added (MAD!) !!!
FtpFile.m FtpBrowserCell.m linked together and synchronized.
Major changes in entry parsing, browser loading, flag handling.
=============================================================================

Working file: FtpConnection.m
Performance drain fixed.
Crash fixed in tranferRrror, newerHost added.
Methodcall [file setNew:NO] added to ro removeFromQueue if its a FTP_GET.
-parentDir crash eliminated.
New -statDir function to check the date of a single directoy.
Most timeout problems hopefully fixed.
Finished Release 0.92
-fullPath: changed to -queueEntryString: and -path added.
Queuing improved.
Queue bugs fixed.
Yoda's hint to use thread_switch SWITCH_OPTION_WAIT imporoved download time.
Colors added (MAD!) !!!
Keep alive added.
Shortest job first algorithm for files, Shortest path first for dir's.
Major changes in entry parsing, browser loading, flag handling.
Info string, REST/SIZE not implemented detection & caching.
Queue panel messages fixed.
ABOR finally fixed by downloading an ftpd and looking at it ...
Broeser update on ftp window close.
Reconnect after 90 sec timeout (untested). Attemt to fix close window abort.
Close window abort fixed (unverified).
Abort fixed (hopefully). Put fixed. Minor tunings.
Inserted Log lines.
Fixed Abort button.
Dir retrieve implemented.
Reconnect put in. Some bugs fixed.
=============================================================================

Working file: FtpDirectory.m
Broken link detection added.
Minor changes.
New outdating scheme, FindPanel made crashsave, Date bug fixed, delayed -free fixed.
Root Directory crashed often in -queueEntryString possibly fixed.
-fullPath: changed to -queueEntryString: and -path added.
Yoda's hint to use thread_switch SWITCH_OPTION_WAIT imporoved download time.
Colors added (MAD!) !!!
Dot-files made to be displayed after normal files.
File format changed, typed stream versioning, starus strings removed.
Major changes in entry parsing, browser loading, flag handling.
Queue panel messages fixed.
Reconnect after 90 sec timeout (untested). Attemt to fix close window abort.
Dir retrieve implemented.
=============================================================================

Working file: FtpFile.m
Filetype is stored now, selected state remembered here now.
New outdating scheme, FindPanel made crashsave, Date bug fixed, delayed -free fixed.
Lazy free for dir & files implemented.
-fullPath: changed to -queueEntryString: and -path added.
Yoda's hint to use thread_switch SWITCH_OPTION_WAIT imporoved download time.
Dot-files made to be displayed after normal files.
FtpFile.m FtpBrowserCell.m linked together and synchronized.
Major changes in entry parsing, browser loading, flag handling.
Info string, REST/SIZE not implemented detection & caching.
Queue panel messages fixed.
=============================================================================

Working file: FtpFileSystem.m
Some outcommented lines removed.
New outdating scheme, FindPanel made crashsave, Date bug fixed, delayed -free fixed.
FindPanel added.
Dot-files made to be displayed after normal files.
File browser update rewritten.
Major changes in entry parsing, browser loading, flag handling.
=============================================================================

Working file: FtpHost.m
Remembers now last visit for Newer, should possibly go into directory.
Lazy free for queued files & dirs implemented.
FindPanel added.
Cvs Log lines added.
Info string, REST/SIZE not implemented detection & caching.
=============================================================================

Working file: FtpSession.m
Performance drain fixed.
Parse newer, public ETA for intelligent abort, validateBrowser debounced.
-flushWindow placed at correct spot (1 line down).
Browser flickering removed.
Dimples fixed, HostPanel default button reconnected in nib.
Find panel got free-save.
Multiple inheritance from DragDestinationButton.
FindPanel added.
Queuing improved.
README files can go by default to /tmp now.
Yoda's hint to use thread_switch SWITCH_OPTION_WAIT imporoved download time.
Colors added (MAD!) !!!
Keep alive added.
Changed to use NLST -laL and modified directory fetch.
Major changes in entry parsing, browser loading, flag handling.
Info string, REST/SIZE not implemented detection & caching.
ABOR adjusted to RFC 589 bylooking at ncftp.
ABOR finally fixed by downloading an ftpd and looking at it ...
Ftp Window close should wipe the queue now.
Abort fixed (hopefully). Put fixed. Minor tunings.
Inserted Log lines.
Fixed Abort button.
Dir retrieve implemented.
Reconnect put in. Some bugs fixed.
=============================================================================

Working file: FtpSubThread.m
Performance drain fixed.
NXConnection callbacks removed to avoid reentering functions before they
finished, SITE NEWER command added to recursively fetch newer files.
No such dir bug fixed.
Minor changes.
New -statDir function to check the date of a single directoy.
Most timeout problems hopefully fixed.
ABORT failure fix attempt.
Yoda's hint to use thread_switch SWITCH_OPTION_WAIT imporoved download time.
Keep alive added.
Changed to use NLST -laL and modified directory fetch.
Major changes in entry parsing, browser loading, flag handling.
Info string, REST/SIZE not implemented detection & caching.
NXSpinLock changed to NXLock.
Queue panel messages fixed.
ABOR adjusted to RFC 589 bylooking at ncftp.
ABOR finally fixed by downloading an ftpd and looking at it ...
Reconnect after 90 sec timeout (untested). Attemt to fix close window abort.
Abort fixed (hopefully). Put fixed. Minor tunings.
Inserted Log lines.
Dir retrieve implemented.
Reconnect put in. Some bugs fixed.
=============================================================================

Working file: HostBrowserCell.m
Host browser tags implemented.
=============================================================================

Working file: NXmystd.m
=============================================================================

Working file: NiftyMatrix.m
Cvs Log lines added.
=============================================================================

Working file: ObjectError.m
Cvs Log lines added.
=============================================================================

Working file: RODragDestinationButton.m
Can now draw an image if not bordered.
=============================================================================

Working file: ROFileSupport.m
Umlaut ae removed for cvs -- pfft!
DOH!
=============================================================================

Working file: SortedList.m
Cvs Log lines added.
=============================================================================

Working file: Yftp_main.m
=============================================================================

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.