2006-02-21 15:01:05 +00:00
|
|
|
aria2 - a simple utility for downloading files.
|
2006-02-17 13:35:04 +00:00
|
|
|
|
|
|
|
1. Disclaimer
|
|
|
|
-------------
|
|
|
|
This program comes with no warranty.
|
|
|
|
You must use this program at your own risk.
|
|
|
|
|
|
|
|
2. About aria2
|
|
|
|
--------------
|
2006-02-21 14:00:58 +00:00
|
|
|
aria2 has segmented downloading engine in its core. By segmented downloading,
|
2006-02-17 13:35:04 +00:00
|
|
|
it can download files very much faster than ordinary browsers.
|
|
|
|
|
|
|
|
aria2 is in very early development stage. Currently it has following features:
|
2006-02-21 15:01:05 +00:00
|
|
|
* HTTP/HTTPS GET support
|
2006-02-17 13:35:04 +00:00
|
|
|
* HTTP Proxy support
|
|
|
|
* HTTP BASIC authentication support
|
|
|
|
* HTTP Proxy authentication support
|
2006-02-21 15:01:05 +00:00
|
|
|
* FTP support(active, passive mode)
|
|
|
|
* FTP through HTTP proxy(GET command or tunneling)
|
2006-02-17 13:35:04 +00:00
|
|
|
* Segmented download
|
|
|
|
* Cookie support(currently aria2 ignores "expires")
|
|
|
|
* It can run as a daemon process.
|
2006-03-21 15:21:11 +00:00
|
|
|
* BitTorrent protocol support
|
2006-02-17 13:35:04 +00:00
|
|
|
|
|
|
|
3. How to build
|
|
|
|
---------------
|
|
|
|
$ ./configure
|
|
|
|
$ make
|
|
|
|
|
|
|
|
The executable is aria2c in src directory.
|
2006-02-18 05:13:21 +00:00
|
|
|
|
2006-03-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* configure.in: Added gnutls support. Added several CPP macros.
* m4/openssl.m4: Added.
* src/SocketCore.{h,cc}: Drop const quarifier from writeData(),
readData(), peekData(). Added gnutls support.
* src/HttpDownloadCommand.cc: Removed SleepCommand.h
* src/TrackerWatcherCommand.{h,cc}: Added. This command creates
TrackerInitCommand periodicaly(TorrentMan::minInterval).
* src/TorrentMan.cc: Remove downloadedSize == 0 check from
save().
Instead, added a check for whether setup method has executed
successfully.
* src/TorrentMan.h: Added member vaiable setupComplete. Updated
DEFAULT_ANNOUNCE_INTERVAL and DEFAULT_ANNOUNCE_MIN_INTERVAL to
300.
* src/Makefile.am: Updated.
* src/messageDigest.h: Added. This is a macro calculating SHA1
digest
using whether OpenSSL or gcrypt, depending on the result of
configure
script.
* src/ShaVisitor.{h,cc}: Removed direct dependency on OpenSSL by
using
messageDigest.h.
* src/TorrentAutoSaveCommand.h: Removed unused variable cuid.
* src/PeerListenCommand.cc: Added log about port binded
successfully.
Fixed memory leak.
* src/main.cc: Added gnutls support. Replaced LIB_SSL with
ENABLE_BITTORRENT where they are not related to OpenSSL but
BitTorrent.
Removed instantiation of TrackerInitCommand. Instead,
TrackerWatcherCommand is instantiated and pushed to the command
queue.
* src/InitiateConnectionCommandFactory.cc: Replaced HAVE_LIBSSL
with
ENABLE_SSL.
* src/Request.cc: Replaced HAVE_LIBSSL with ENABLE_SSL.
* src/RequestSlotMan.cc:
(deleteCompletedRequestSlot)
If a piece is already acquired by another command, delete the
request
slots for the piece.
* src/TrackerUpdateCommand.cc:
(execute)
Changed log level of MSG_TRACKER_WARNING_MESSAGE from info to
warn.
Added a check whether peer list is null.
Fixed the bug that causes sending completed event to the tracker
several times.
* src/TrackerInitCommand.cc:
(execute)
Fixed the bug that causes sending completed event to the tracker
several times.
* src/AbstractDiskWriter.{h,cc}: Removed direct dependency on
OpenSSL
by using messageDigest.h.
2006-03-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* PeerConnection.cc: Replaced log message "keep-alive" with
"keep alive".
* PeerInteractionCommand.{h,cc}: Close connection if peer is
choking
localhost long time.
* TorrentMan.cc: When adding new peer with duplicate = true, if
the
number of peer list is equal to or grater than MAX_PEER_LIST,
delete
at most 100 failure entry from the list. If with duplicate =
false,
MAX_PEER_LIST is not checked.
* PeerListenCommand.cc: Fixed the argument order of log message.
2006-03-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* Logger.h: Moved enum LEVEL from SimpleLogger.h to here.
Added warn().
* SimpleLogger.h: Moved enum LEVEL to Logger.h.
Implemented warn().
Defined 2 macros(WRITE_LOG, WRITE_LOG_EX) to avoid duplicated
code.
2006-03-27 14:47:26 +00:00
|
|
|
4. Dependency
|
|
|
|
-------------
|
|
|
|
In order to enable HTTPS support, you need GNUTLS or OpenSSL.
|
|
|
|
In order to enable BitTorrent support, you need GCRYPT(if you choose GNUTLS)
|
|
|
|
or OpenSSL.
|
|
|
|
|
|
|
|
GNUTLS has precedence over OpenSSL if both libraries are installed.
|
2006-03-21 15:21:11 +00:00
|
|
|
|
|
|
|
5. BitTorrrent
|
|
|
|
--------------
|
|
|
|
The filename of the downloaded file is determined as follows:
|
|
|
|
|
|
|
|
single-file mode:
|
|
|
|
If "name" key is present in .torrent file, filename is the value of "name"
|
|
|
|
key. Otherwise, filename is the basename of .torrent file appended by
|
|
|
|
".file". For example, .torrent file is "test.torrrent", then filename is
|
|
|
|
"test.torrent.file".
|
|
|
|
The directory to store the downloaded file can be specified by -d option.
|
|
|
|
multi-file mode:
|
|
|
|
The complete directory/file structure mentioned in .torrent file is
|
|
|
|
created.
|
|
|
|
The directory to store the top directory of downloaded files can be
|
|
|
|
specified by -d option.
|
|
|
|
|
2006-03-24 11:59:18 +00:00
|
|
|
In both mode, aria2 needs at least 2 times more disk space than the file size
|
|
|
|
itself because it creates complete temporary file.
|
|
|
|
|
2006-03-21 16:07:22 +00:00
|
|
|
Note:
|
|
|
|
* -o option is used to change the filename of downloaded .torrent file.
|
|
|
|
* This version only supports compact peers list format.
|
|
|
|
* The ports aria2c uses are 6881-6999.
|
2006-03-27 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* configure.in: Added gnutls support. Added several CPP macros.
* m4/openssl.m4: Added.
* src/SocketCore.{h,cc}: Drop const quarifier from writeData(),
readData(), peekData(). Added gnutls support.
* src/HttpDownloadCommand.cc: Removed SleepCommand.h
* src/TrackerWatcherCommand.{h,cc}: Added. This command creates
TrackerInitCommand periodicaly(TorrentMan::minInterval).
* src/TorrentMan.cc: Remove downloadedSize == 0 check from
save().
Instead, added a check for whether setup method has executed
successfully.
* src/TorrentMan.h: Added member vaiable setupComplete. Updated
DEFAULT_ANNOUNCE_INTERVAL and DEFAULT_ANNOUNCE_MIN_INTERVAL to
300.
* src/Makefile.am: Updated.
* src/messageDigest.h: Added. This is a macro calculating SHA1
digest
using whether OpenSSL or gcrypt, depending on the result of
configure
script.
* src/ShaVisitor.{h,cc}: Removed direct dependency on OpenSSL by
using
messageDigest.h.
* src/TorrentAutoSaveCommand.h: Removed unused variable cuid.
* src/PeerListenCommand.cc: Added log about port binded
successfully.
Fixed memory leak.
* src/main.cc: Added gnutls support. Replaced LIB_SSL with
ENABLE_BITTORRENT where they are not related to OpenSSL but
BitTorrent.
Removed instantiation of TrackerInitCommand. Instead,
TrackerWatcherCommand is instantiated and pushed to the command
queue.
* src/InitiateConnectionCommandFactory.cc: Replaced HAVE_LIBSSL
with
ENABLE_SSL.
* src/Request.cc: Replaced HAVE_LIBSSL with ENABLE_SSL.
* src/RequestSlotMan.cc:
(deleteCompletedRequestSlot)
If a piece is already acquired by another command, delete the
request
slots for the piece.
* src/TrackerUpdateCommand.cc:
(execute)
Changed log level of MSG_TRACKER_WARNING_MESSAGE from info to
warn.
Added a check whether peer list is null.
Fixed the bug that causes sending completed event to the tracker
several times.
* src/TrackerInitCommand.cc:
(execute)
Fixed the bug that causes sending completed event to the tracker
several times.
* src/AbstractDiskWriter.{h,cc}: Removed direct dependency on
OpenSSL
by using messageDigest.h.
2006-03-26 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* PeerConnection.cc: Replaced log message "keep-alive" with
"keep alive".
* PeerInteractionCommand.{h,cc}: Close connection if peer is
choking
localhost long time.
* TorrentMan.cc: When adding new peer with duplicate = true, if
the
number of peer list is equal to or grater than MAX_PEER_LIST,
delete
at most 100 failure entry from the list. If with duplicate =
false,
MAX_PEER_LIST is not checked.
* PeerListenCommand.cc: Fixed the argument order of log message.
2006-03-25 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* Logger.h: Moved enum LEVEL from SimpleLogger.h to here.
Added warn().
* SimpleLogger.h: Moved enum LEVEL to Logger.h.
Implemented warn().
Defined 2 macros(WRITE_LOG, WRITE_LOG_EX) to avoid duplicated
code.
2006-03-27 14:47:26 +00:00
|
|
|
* The maximum number of peers is 55.
|