mirror of https://github.com/aria2/aria2
2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Updated doc * src/FtpNegotiationCommand.cc * src/HttpResponseCommand.cc * src/RequestGroup.ccpull/1/head
parent
97953dd1ae
commit
7f9e70e5c8
|
@ -1,3 +1,10 @@
|
|||
2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Updated doc
|
||||
* src/FtpNegotiationCommand.cc
|
||||
* src/HttpResponseCommand.cc
|
||||
* src/RequestGroup.cc
|
||||
|
||||
2010-09-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||
|
||||
Fixed the bug that error occurs when downloading zero-length file.
|
||||
|
|
|
@ -405,10 +405,13 @@ bool FtpNegotiationCommand::onFileSizeDetermined(uint64_t totalLength)
|
|||
|
||||
if(getDownloadContext()->knowsTotalLength() &&
|
||||
getRequestGroup()->downloadFinishedByFileLength()) {
|
||||
// TODO If metalink file does not contain size and it contains
|
||||
// hash and file is not zero length, but remote server says the
|
||||
// file size is 0, no hash check is performed in the current
|
||||
// implementation. See also
|
||||
// HttpResponseCommand::handleOtherEncoding()
|
||||
getRequestGroup()->initPieceStorage();
|
||||
getPieceStorage()->markAllPiecesDone();
|
||||
// TODO It would be good to issue ChecksumCheckIntegrity here
|
||||
// instead of just pretending checksum verification is done.
|
||||
getDownloadContext()->setChecksumVerified(true);
|
||||
sequence_ = SEQ_DOWNLOAD_ALREADY_COMPLETED;
|
||||
getLogger()->notice(MSG_DOWNLOAD_ALREADY_COMPLETED,
|
||||
|
|
|
@ -390,9 +390,13 @@ bool HttpResponseCommand::handleOtherEncoding
|
|||
// For zero-length file, check existing file comparing its size
|
||||
if(!chunkedUsed && getDownloadContext()->knowsTotalLength() &&
|
||||
getRequestGroup()->downloadFinishedByFileLength()) {
|
||||
// TODO If metalink file does not contain size and it contains
|
||||
// hash and file is not zero length, but remote server says the
|
||||
// file size is 0, no hash check is performed in the current
|
||||
// implementation. See also
|
||||
// FtpNegotiationCommand::onFileSizeDetermined()
|
||||
getRequestGroup()->initPieceStorage();
|
||||
getPieceStorage()->markAllPiecesDone();
|
||||
// This is zero-size file, so hash check is no use.
|
||||
getDownloadContext()->setChecksumVerified(true);
|
||||
getLogger()->notice(MSG_DOWNLOAD_ALREADY_COMPLETED,
|
||||
util::itos(getRequestGroup()->getGID()).c_str(),
|
||||
|
|
|
@ -542,6 +542,8 @@ void RequestGroup::initPieceStorage()
|
|||
{
|
||||
SharedHandle<PieceStorage> tempPieceStorage;
|
||||
if(downloadContext_->knowsTotalLength() &&
|
||||
// Following conditions are needed for chunked encoding with
|
||||
// content-length = 0. Google's dl server used this before.
|
||||
(downloadContext_->getTotalLength() > 0
|
||||
#ifdef ENABLE_BITTORRENT
|
||||
|| downloadContext_->hasAttribute(bittorrent::BITTORRENT)
|
||||
|
|
Loading…
Reference in New Issue