Fixed segmentation fault when GZipDecoder::decode() returns 0
byte.
* src/DownloadCommand.cc
* src/bitfield.h
* test/bitfieldTest.cc
Fixed the bug that causes infinite loop if broken web server
returns chunked response without last "0" chunk-size marker and
closes connection.
* src/DownloadCommand.cc
Instantiate properly configured HttpDownloadCommand for
non-resumable downlaods.
* src/HttpResponseCommand.cc
Fixed the bug that upload limit exceeds the value specified in
--seed-ratio option depending on the timing of the execution of
SeedCheckCommand.
* src/SeedCheckCommand.cc
Fixed the bug that removed peer's session upload/download length
are counted twice in _cachedTransferStat before it is
re-calculated. This affected the calculation of shara ratio,
resulting aria2 wrongly determines that specified share ratio is
reached. Also fixed the typo in calculateStatFor function name.
* src/BtSetup.cc
* src/DefaultPeerStorage.cc
* src/ShareRatioSeedCriteria.h
* test/ShareRatioSeedCriteriaTest.cc
BitfieldMan::getMissingIndexes family functions now takes
unsigned char* bitfield instead of stl container for efficiency.
PieceSelector::select now takes this
bitfield. RarestPieceSelector::select now also performs
efficiently for this change. bitfield namespace is introduced
and it has several helper functions to handle basic bitfield
operations such as test, count set bits, etc.
* src/BitfieldMan.cc
* src/BitfieldMan.h
* src/DefaultBtRequestFactory.cc
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/LongestSequencePieceSelector.cc
* src/LongestSequencePieceSelector.h
* src/Makefile.am
* src/Piece.cc
* src/Piece.h
* src/PieceSelector.h
* src/RarestPieceSelector.cc
* src/RarestPieceSelector.h
* src/Util.cc
* src/Util.h
* src/bitfield.h
* test/BitfieldManTest.cc
* test/LongestSequencePieceSelectorTest.cc
* test/Makefile.am
* test/RarestPieceSelectorTest.cc
* test/UtilTest.cc
* test/bitfieldTest.cc
Run DefaultBtMessageDispatcher::
checkRequestSlotAndDoNecessaryThing()
in every 1 sec. The timeout of RequestSlot is 60s by default and
it doesn't need to be called every time when
DefaultBtInteractive::doInteractionProcessing() is called.
* src/DefaultBtInteractive.cc
* src/DefaultBtInteractive.h
Added 'falloc' parameter for --file-allocation option. 'falloc'
allocation mode uses posix_fallocate() system call to allocate
file on disk. If you are using newer file systems such as ext4
(with extents support), btrfs or xfs, 'falloc' is your best
choice. It allocates large(few GiB) files almost instantly.
Don't use 'falloc' with legacy file systems such as ext3 because
it takes almost same time as 'prealloc' and it blocks aria2
entirely until allocation finishes. 'falloc' may not be
available if your system doesn't have posix_fallocate() system
call.
* configure.ac
* src/AbstractDiskWriter.cc
* src/AbstractDiskWriter.h
* src/AbstractSingleDiskAdaptor.cc
* src/BinaryStream.h
* src/BtCheckIntegrityEntry.cc
* src/ByteArrayDiskWriter.h
* src/CheckIntegrityEntry.cc
* src/CheckIntegrityEntry.h
* src/DefaultPieceStorage.cc
* src/DiskAdaptor.cc
* src/DiskAdaptor.h
* src/DiskWriter.h
* src/FallocFileAllocationIterator.cc
* src/FallocFileAllocationIterator.h
* src/FileAllocationEntry.cc
* src/FileAllocationEntry.h
* src/Makefile.am
* src/MultiFileAllocationIterator.cc
* src/MultiFileAllocationIterator.h
* src/OptionHandlerFactory.cc
* src/RequestGroup.cc
* src/StreamCheckIntegrityEntry.cc
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
* test/FallocFileAllocationIteratorTest.cc
* test/Makefile.am
Replaced std::vector<SharedHandle<PieceStats> _sortedPieceStats
with std::vector<size_t> _sortedPieceStatIndexes to reduce the
cost of std::rotate().
* src/RarestPieceSelector.cc
* src/RarestPieceSelector.h
* test/RarestPieceSelectorTest.cc
Added an option to specify the interval between tracker
requests.
If non-zero value is specified, aria2 uses it and ignores the
interval value in the response of tracker. If zero is specified,
aria2 determines the inteval value based on the tarcker response
and download progress.
* src/DefaultBtAnnounce.cc
* src/DefaultBtAnnounce.h
* src/OptionHandlerFactory.cc
* src/RequestGroup.cc
* src/prefs.cc
* src/prefs.h
* src/usage_text.h
Refactored getMissingIndexRandomly, getFirstMissingIndex,
getAllMissingBlockIndexes to reduce a call to
array_function_base::operator[].
* src/BitfieldMan.cc
Cached TransferStat/download speed to avoid to sum them up in
each call.
* src/DefaultPeerStorage.cc
* src/DefaultPeerStorage.h
* src/SegmentMan.cc
* src/SegmentMan.h