Added short option -k for --min-split-size option and -x for
--max-connection-per-server option. Raised maximum value of
--max-connection-per-server up to 16.
* src/OptionHandlerFactory.cc
* src/usage_text.h
Use uri::parse instead of Request::setUri() where just URI parser
is needed.
* src/AbstractCommand.cc
* src/AdaptiveURISelector.cc
* src/DefaultBtAnnounce.cc
* src/FeedbackURISelector.cc
* src/FileEntry.cc
* src/HttpResponseCommand.cc
* src/ProtocolDetector.cc
* src/Request.cc
* src/RequestGroupMan.cc
Moved URI parser code to uri.h, uri.cc to provide fast URI parser
without Request object initialization.
* src/Makefile.am
* src/Request.cc
* src/uri.cc
* src/uri.h
* test/Makefile.am
* test/RequestTest.cc
* test/UriTest.cc
Added --max-download-result=NUM option. This option sets maximum
number of download result kept in memory. The download results are
completed/error/ removed downloads. The download results are
stored in FIFO queue and it can store at most NUM download
results. When queue is full and new download result is created,
oldest download result is removed from the front of the queue and
new one is pushed to the back. Setting big number in this option
may result high memory consumption after thousands of
downloads. Specifying 0 means no download result is kept. Default
value is 1000.
* src/OptionHandlerFactory.cc
* src/RequestGroupMan.cc
* src/RequestGroupMan.h
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
Check hash(hash for entire file, not piece hash) if
--check-integrity option is given and file is
downloaded(determined by file length). If it fails, re-download
file.
* src/AbstractCommand.cc
* src/ChecksumCheckIntegrityEntry.cc
* src/ChecksumCheckIntegrityEntry.h
* src/FtpNegotiationCommand.cc
* src/HttpResponseCommand.cc
* src/RequestGroup.cc
Moved connectedHostname, connectedAddr and connectedPort to
Request object. Mark cached IP address bad on timeout to allow
aria2 to renew IP address cache.
* src/AbstractCommand.cc
* src/AbstractProxyRequestCommand.cc
* src/AbstractProxyRequestCommand.h
* src/FtpInitiateConnectionCommand.cc
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/HttpInitiateConnectionCommand.cc
* src/HttpRequestCommand.cc
* src/HttpRequestCommand.h
* src/InitiateConnectionCommand.cc
* src/InitiateConnectionCommand.h
* src/Request.cc
* src/Request.h
Fixed the bug that aria2 reports error and exits with non-zero
status when file is already downloaded.
* src/FtpNegotiationCommand.cc
* src/HttpResponseCommand.cc
* src/RequestGroup.cc
Allow '@' in username and password embedded in URI. It should be
percent-encoded but many people use their mail address as an
username and forget about PE.
* src/Request.cc
* test/RequestTest.cc
Added a sets of overloaded functions for
PieceStorage::getMissingPiece() and getMissingFastPiece() to get
multiple pieces more efficiently.
* src/DefaultBtInteractive.cc
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/PieceStorage.h
* src/UnknownLengthPieceStorage.cc
* src/UnknownLengthPieceStorage.h
* test/DefaultPieceStorageTest.cc
* test/MockPieceStorage.h
Don't listen on IPv6 socket for BitTorrent, DHT, XML-RPC if
--disable-ipv6 is true.
* src/BtSetup.cc
* src/DownloadEngineFactory.cc
* src/RequestGroup.cc
Enter end game mode as soon as all pieces are assigned to peer to
avoid substantial slow down at the very last stage of download.
* src/DefaultBtInteractive.cc
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/PieceStorage.h
* src/UnknownLengthPieceStorage.h
* test/MockPieceStorage.h
Added --bt-tracker and --bt-exclude-tracker option. In
--bt-tracker option, you can specify comma separated list of
additional BitTorrent tracker's announce URI. These URIs are not
affected by --bt-exclude-tracker option because they are added
after URIs in --bt-exclude-tracker option are removed. In
--bt-exclude-tracker option, you can specify comma separated list
of BitTorrent tracker's announce URI to remove. You can use
special value '*' which matches all URIs, thus removes all
announce URIs. When specifying '*' in shell command-line, don't
forget to escape or quote it.
* src/BtDependency.cc
* src/OptionHandlerFactory.cc
* src/UTMetadataPostDownloadHandler.cc
* src/bittorrent_helper.cc
* src/bittorrent_helper.h
* src/download_helper.cc
* src/download_helper.h
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
* test/BittorrentHelperTest.cc
* test/DownloadHelperTest.cc