diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-05-07 03:49:27 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2009-05-07 03:49:27 +0000 |
| commit | 030bc082872b640765fd092e5cee4920c208a5fd (patch) | |
| tree | 8114aa66550b9fa4579e8e0dfbb4cebc69fd9ba4 /src/HttpResponseCommand.cc | |
| parent | 4432b68d24e362618a8b28b73467466e262a1809 (diff) | |
2009-05-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed broken file renaming feature since r1202.
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/HttpResponseCommand.cc
* src/RequestGroup.cc
* src/RequestGroup.h
Diffstat (limited to 'src/HttpResponseCommand.cc')
| -rw-r--r-- | src/HttpResponseCommand.cc | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/HttpResponseCommand.cc b/src/HttpResponseCommand.cc index 487593e8..d33399a3 100644 --- a/src/HttpResponseCommand.cc +++ b/src/HttpResponseCommand.cc @@ -216,6 +216,11 @@ bool HttpResponseCommand::shouldInflateContentEncoding bool HttpResponseCommand::handleDefaultEncoding(const HttpResponseHandle& httpResponse) { HttpRequestHandle httpRequest = httpResponse->getHttpRequest(); + _requestGroup->adjustFilename + (SharedHandle<BtProgressInfoFile>(new DefaultBtProgressInfoFile + (_requestGroup->getDownloadContext(), + SharedHandle<PieceStorage>(), + e->option))); _requestGroup->initPieceStorage(); if(e->option->getAsBool(PREF_DRY_RUN)) { @@ -225,6 +230,12 @@ bool HttpResponseCommand::handleDefaultEncoding(const HttpResponseHandle& httpRe BtProgressInfoFileHandle infoFile(new DefaultBtProgressInfoFile(_requestGroup->getDownloadContext(), _requestGroup->getPieceStorage(), e->option)); if(!infoFile->exists() && _requestGroup->downloadFinishedByFileLength()) { + _requestGroup->getPieceStorage()->markAllPiecesDone(); + + logger->notice(MSG_DOWNLOAD_ALREADY_COMPLETED, + _requestGroup->getGID(), + _requestGroup->getFilePath().c_str()); + return true; } @@ -308,16 +319,23 @@ bool HttpResponseCommand::handleOtherEncoding(const HttpResponseHandle& httpResp req->setMethod(Request::METHOD_GET); return prepareForRetry(0); } - _requestGroup->initPieceStorage(); // For zero-length file, check existing file comparing its size - if(_requestGroup->getDownloadContext()->knowsTotalLength() && - _requestGroup->downloadFinishedByFileLength()) { + if(_requestGroup->downloadFinishedByFileLength()) { + _requestGroup->initPieceStorage(); + _requestGroup->getPieceStorage()->markAllPiecesDone(); + + logger->notice(MSG_DOWNLOAD_ALREADY_COMPLETED, + _requestGroup->getGID(), + _requestGroup->getFilePath().c_str()); + poolConnection(); return true; } _requestGroup->shouldCancelDownloadForSafety(); + _requestGroup->initPieceStorage(); + _requestGroup->getPieceStorage()->getDiskAdaptor()->initAndOpenFile(); // In this context, knowsTotalLength() is true only when the file is |
