                               proSilla, version 1.2
                               ~~~~~~~~~~~~~~~~~~~~~
                              by Andrzej Szombierski
                              <anszom@v-lo.krakow.pl>
				 <qq@kuku.eu.org>

ProSilla is a program which accelerates file transfers over ssh by opening
multiple connections just like other download accelerators. The only difference
is that proSilla uses ssh instead of http/ftp for download. Of course you must
have a shell account on the remote server to use this program.

By default it uses a ncurses user interface, but since the version 1.2 it also
has a nice gtk+ GUI.

0. Legal stuff
~~~~~~~~~~~~~~
ProSilla is GPL and comes with absolutely no warranty, for details see COPYING.

1. Compiling
~~~~~~~~~~~~
'make' should do the job, but keep in mind that proSilla was not heavily tested.
If you encounter any problems (and perhaps solve them), please contact me.

2. Usage
~~~~~~~~
The simplest way to use prosilla in text mode is:

	prosilla any.remote.host my/beloved/file

In this case, proSilla will default to 4 simulatenous connections and ncurses
user interface. Number of connections may be adjusted using -k. You may include
your username in the first argument, like this:

	prosilla me@my.host my/beloved/file

ProSilla can be killed at any time, and when invoked again, it will automagi-
cally resume transfer using the data from .psinfo file.

You can also resume a broken scp transfer:

	prosilla -c remote.host my/beloved/partially.downloaded.file

Remember that -c is needed only if you didn't use proSilla on this file before.

By default, proSilla uses /bin/dd to read files on remote server. Optionally it
may use a program called 'proserv'. The difference is that parts of file read
with dd must begin and end on block (in our case - 1kb) boundary, so it sends
some data multiple times, while reading with proserv can begin and end anywhere.
Proserv is also a *little* bit more CPU friendly because it uses sendfile()
(if supported) instead of read()/write().

Before the download is finished, the size of the file won't tell you much about
the progress. To check transfer status you may use something like this:

	prosilla -i file.psinfo

Other options are described in the usage text (just type ./prosilla to see it).

3. GTK+ interface
~~~~~~~~~~~~~~~~~
If you compiled in the gtk+ interface, you can start it by:

	prosilla -g
or	gprosilla

Prosilla will ask you for the username, server, filename and other options and
start transferring the file as usual. You can also start the transfer directly
from the command line like this:

	prosilla -g [options] user@host file
or	gprosilla [options] user@host file

The gtk+ interface was not heavily tested, but it should work :)


4. Passwords, passphrases, keys...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ProSilla will ask for a password or passphrase if required (actually if ssh
client asks for it). You will be asked only once, proSilla will automatically
supply the password on each connection attempt.

5. Known bugs
~~~~~~~~~~~~~
* transferring files larger than 2GB won't work - and I won't implement it soon
  since I won't try to test it on my 115kbit connection :)
  
* the 'Background' option in the GUI doesn't remove the application icon from
  the screen (at least in WindowMaker) - dealing with it will be difficult
  because gtk/gdk don't have a clean-up-and-disconnect-from-xserver function.

6. ToDo
~~~~~~~
* measuring the current transfer speed (not just average), and a nice graph in
  the gtk+ version :>
  
* upload support would be nice, but there would be a little problem - the incom-
  plete file wouldn't be stored on the same machine as the .psinfo file.. anyway
  it's possible, I'm just too lazy :)
  
* queueing multiple files/recursive directory transfer - also it will need some
  work.. maybe in 2.0 :)

as always - bug reports and great ideas are appreciated.
