diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-05-20 13:51:52 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-05-20 13:51:52 +0000 |
| commit | eaf2d53a91d4019683bc6caf25c5a143f88a84b4 (patch) | |
| tree | 91137d789cdaa42221017a52346befb406c3addf /src/TrackerUpdateCommand.cc | |
| parent | dd37b7be0aa5d818636530bc60f894893fd8f7a4 (diff) | |
2007-05-20 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
* Added the simultaneous download feature.
Diffstat (limited to 'src/TrackerUpdateCommand.cc')
| -rw-r--r-- | src/TrackerUpdateCommand.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/TrackerUpdateCommand.cc b/src/TrackerUpdateCommand.cc index d619a754..53796e76 100644 --- a/src/TrackerUpdateCommand.cc +++ b/src/TrackerUpdateCommand.cc @@ -62,7 +62,7 @@ char* TrackerUpdateCommand::getTrackerResponse(size_t& trackerResponseLength) { char data[2048]; try { while(1) { - int dataLength = e->segmentMan->diskWriter->readData(data, sizeof(data), bufLength); + int dataLength = e->_requestGroupMan->getRequestGroup(0)->getSegmentMan()->diskWriter->readData(data, sizeof(data), bufLength); if(bufLength+dataLength >= maxBufLength) { maxBufLength = Util::expandBuffer(&buf, bufLength, bufLength+dataLength); } @@ -84,7 +84,8 @@ bool TrackerUpdateCommand::execute() { if(btAnnounce->noMoreAnnounce()) { return true; } - if(!e->segmentMan->finished()) { + if(e->_requestGroupMan->countRequestGroup() == 0 || + !e->_requestGroupMan->downloadFinished()) { return prepareForRetry(); } char* trackerResponse = 0; @@ -112,10 +113,10 @@ bool TrackerUpdateCommand::execute() { } btAnnounce->announceSuccess(); btAnnounce->resetAnnounce(); - e->segmentMan->init(); + e->_requestGroupMan->removeStoppedGroup(); } catch(RecoverableException* err) { logger->error("CUID#%d - Error occurred while processing tracker response.", cuid, err); - e->segmentMan->errors++; + e->_requestGroupMan->getRequestGroup(0)->getSegmentMan()->errors++; delete err; } if(trackerResponse) { |
