summaryrefslogtreecommitdiff
path: root/src/AbstractCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-13 15:02:32 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-13 15:02:32 +0000
commit894641dfdbbdf8edd186476245b24f6bba7598ec (patch)
treeab84892379313e94141ae1b3eab1e0494df20710 /src/AbstractCommand.cc
parent19913203b72d5ec1e047053a264d01d74e1e9d39 (diff)
2009-07-13 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Don't call prepareForRetry(1) if all segments are ignored in SegmentMan. * src/AbstractCommand.cc * src/BitfieldMan.cc * src/BitfieldMan.h * src/SegmentMan.cc * src/SegmentMan.h
Diffstat (limited to 'src/AbstractCommand.cc')
-rw-r--r--src/AbstractCommand.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/AbstractCommand.cc b/src/AbstractCommand.cc
index aa8d4b3b..7899f5a4 100644
--- a/src/AbstractCommand.cc
+++ b/src/AbstractCommand.cc
@@ -149,7 +149,13 @@ bool AbstractCommand::execute() {
if(_segments.empty()) {
// TODO socket could be pooled here if pipelining is enabled...
logger->info(MSG_NO_SEGMENT_AVAILABLE, cuid);
- return prepareForRetry(1);
+ // When all segments are ignored in SegmentMan, there are
+ // no URIs available, so don't retry.
+ if(_requestGroup->getSegmentMan()->allSegmentsIgnored()) {
+ return true;
+ } else {
+ return prepareForRetry(1);
+ }
}
} else {
size_t maxSegments = req->getMaxPipelinedRequest();