summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-11-20 07:47:42 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-11-20 07:47:42 +0000
commit60e3e46c527fb567522f3fff428b6760b9273884 (patch)
tree2f44f9f3bb6bc61d1b228b24d4735a4987971020 /src/AbstractCommand.cc
parent39c2b5784234ae16919a73d63606314f2acd3726 (diff)
2009-11-20 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that slow server is not knocked down in favor of faster one. * src/AbstractCommand.cc * src/DefaultPieceStorage.cc * src/DefaultPieceStorage.h * src/PieceStorage.h * src/UnknownLengthPieceStorage.cc * src/UnknownLengthPieceStorage.h * test/MockPieceStorage.h
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc
index 71ebe860..059d0d8b 100644
--- a/src/AbstractCommand.cc
+++ b/src/AbstractCommand.cc
@@ -105,9 +105,9 @@ bool AbstractCommand::execute() {
return true;
}
// TODO it is not needed to check other PeerStats every time.
- // Find faster Request when this is the only active Request
- if(!req.isNull() && _requestGroup->getNumStreamConnection() == 1 &&
- _fileEntry->countPooledRequest() > 0) {
+ // Find faster Request when no segment is available.
+ if(!req.isNull() && _fileEntry->countPooledRequest() > 0 &&
+ !_requestGroup->getPieceStorage()->hasMissingUnusedPiece()) {
SharedHandle<Request> fasterRequest = _fileEntry->findFasterRequest(req);
if(!fasterRequest.isNull()) {
logger->info("CUID#%d - Use faster Request hostname=%s, port=%u",