summaryrefslogtreecommitdiff
path: root/src/DownloadCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-05-05 15:19:02 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-05-05 15:19:02 +0000
commit3c877a9df4693004cd28aefe38c790907ffc5ddd (patch)
treed58f81f6c6819c1190b8425f395520813ff32ec4 /src/DownloadCommand.cc
parent7893340cb34e9686020346e0503dd29c187491fb (diff)
2009-05-06 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Supported segmented downloading with chunked transfer encoding and content-length. * src/DownloadCommand.cc * src/HttpResponseCommand.cc
Diffstat (limited to 'src/DownloadCommand.cc')
-rw-r--r--src/DownloadCommand.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/DownloadCommand.cc b/src/DownloadCommand.cc
index 8b6b05ac..14a31834 100644
--- a/src/DownloadCommand.cc
+++ b/src/DownloadCommand.cc
@@ -165,6 +165,7 @@ bool DownloadCommand::executeInternal() {
_requestGroup->getSegmentMan()->updateDownloadSpeedFor(peerStat);
bool segmentComplete = false;
+ // Note that GrowSegment::complete() always returns false.
if(_transferEncodingDecoder.isNull() && _contentEncodingDecoder.isNull()) {
if(segment->complete()) {
segmentComplete = true;
@@ -172,6 +173,8 @@ bool DownloadCommand::executeInternal() {
!socket->wantRead() && !socket->wantWrite()) {
segmentComplete = true;
}
+ } else if(!_transferEncodingDecoder.isNull() && segment->complete()) {
+ segmentComplete = true;
} else if((_transferEncodingDecoder.isNull() ||
_transferEncodingDecoder->finished()) &&
(_contentEncodingDecoder.isNull() ||