2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

In a single file download, file size becomes known just after
	downloading, set total length to FileEntry object when download
	completed.	
	* src/DownloadCommand.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-07-03 16:13:43 +00:00
parent e1d63f3aea
commit 1052600862
2 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
In a single file download, file size becomes known just after
downloading, set total length to FileEntry object when download
completed.
* src/DownloadCommand.cc
2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Use std::vector::reserve() for fileEntries and pieceHashes in

View File

@ -260,6 +260,17 @@ void DownloadCommand::checkLowestDownloadSpeed() const
bool DownloadCommand::prepareForNextSegment() {
if(_requestGroup->downloadFinished()) {
// If this is a single file download, and file size becomes known
// just after downloading, set total length to FileEntry object
// here.
if(_requestGroup->getDownloadContext()->getFileEntries().size() == 1) {
const SharedHandle<FileEntry>& fileEntry =
_requestGroup->getDownloadContext()->getFirstFileEntry();
if(fileEntry->getLength() == 0) {
fileEntry->setLength
(_requestGroup->getPieceStorage()->getCompletedLength());
}
}
#ifdef ENABLE_MESSAGE_DIGEST
CheckIntegrityEntryHandle entry(new ChecksumCheckIntegrityEntry(_requestGroup));
if(entry->isValidationReady()) {