** lftp-0.12.1

This package `lftp' contains the following components:

   lftp
      cool command line ftp client.

   ftpget
      a simple non-interactive tool for downloading files

   parallelftp
      Uses several connections to download single file. It can
      be useful to download a file ASAP trough a busy link.

All these programs are written in C++ and based on class Ftp.

The class Ftp allows reliable deliver of files via ftp
protocol, it hides all the details from application and allows
asynchronous operation. Redial and reget are done as necessary.
It can also speed up ftp operations by sending several commands
at once and then checks all the responces. It seems this
sometimes does not work, so it is disabled by default. To turn
it on, use `set sync-mode n' in lftp or --async-mode for
ftpget.

Note that sending several commands is considered as violation
or protocol, but RFC959 says: ``The user-process sending
another command before the completion reply would be in
violation of protocol; but server-FTP processes should queue
any commands that arrive while a preceding command is in
progress.''

It is known that some network software dealing with address
translation works incorrectly in case of several FTP commands
in one network packet.


lftp
~~~~
lftp is quite a powerful ftp client. It uses GNU readline to
read commands. It uses shell-like command syntax allowing you
to launch several commands in parallel in background (&).

Some commands allow redirecting its output (cat, ls) to file or
via pipe to external command. Commands can be started
conditionally based on termination status of previous command
(&&, ||). Also, it is possible to group commands within () and
execute them in background. All background jobs are executed in
the same single process. You can bring a foreground job to
background with ^Z and back with command `wait'.

When you think you are done but some jobs are not yet finished,
you can just exit and lftp will move itself to nohup mode in
background, allowing you use your shell.

lftp has reliable put, reput, mirror, as long with many other
commands. Use command `help' to learn more.

On startup, lftp executes /etc/lftp.conf and then ~/.lftprc.
You can place aliases and `set' commands there. Some people
prefer to see full protocol debug, use `debug' to turn the
debug on.

lftp has the following settable variables (you can also use
`set' to see all variables and their values):
 * cmd:long-running - (seconds) time of command execution,
which is considered as `long' and a beep is done before next
prompt. 0 meand off.
 * cmd:ls-default - (string) default ls argument
 * cmd:prompt - (string) prompt. lftp recognizes some bash
escapes, such as \u, \h, \w.
 * ftp:redial-interval - (seconds) minimal time between
reconnects.
 * cmd:remote-completion - (bool) whether to use remote
completion.
 * ftp:sync-mode - (bool) send one command at a time and wait
for responce. Might be necessary to set it to 'off' if buggy
ftp server or router is used.
 * ftp:timeout - (seconds) network protocol timeout
 * ftp:passive-mode - (bool) passive mode ftp

Variable names can be abbreviated and prefix can be omitted
unless the rest becomes ambiguous.


Systems
~~~~~~~
The package is known to compile on Solaris2.5, Linux,
FreeBSD2.1.5 and SCO v5.0(gcc). If you can't compile it on your
system, let me know.


Mailing list
~~~~~~~~~~~~
There is a mailing list for discussion of lftp. It is managed
by majordomo; to subscribe, send mail to majordomo@uniyar.ac.ru
with `subscribe lftp' in body of message; to send letters to
the list, send them to lftp@uniyar.ac.ru; to unsubscribe, send
mail to majordomo@uniyar.ac.ru with `unsubscribe lftp' in body
of message.


Author
~~~~~~
Author: Alexander V. Lukyanov <lav@yars.free.net>
Postal address: Aviatorov st. 80-45, Yaroslavl 150051, Russia

Comments and bug reports are welcome.
