summaryrefslogtreecommitdiff
path: root/src/HttpRequestCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-23 15:37:35 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-23 15:37:35 +0900
commitb782a56b1c178795fda4ca7ed2ee4d9621927aab (patch)
tree20cc1144d71814a2ed02be606696c72689db2f51 /src/HttpRequestCommand.cc
parent73f4db883cde5eee2f81e77c9e37f1915905139b (diff)
Show correct end byte in error message when HTTP response range is not ok
Previously, unless HTTP pipelining is enabled, end byte in that message is always 0. With this change, it shows correct end byte sent to the HTTP server.
Diffstat (limited to 'src/HttpRequestCommand.cc')
-rw-r--r--src/HttpRequestCommand.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/HttpRequestCommand.cc b/src/HttpRequestCommand.cc
index 6a2a6aff..f393125f 100644
--- a/src/HttpRequestCommand.cc
+++ b/src/HttpRequestCommand.cc
@@ -115,7 +115,9 @@ createHttpRequest(const SharedHandle<Request>& req,
} else {
httpRequest->disableNoCache();
}
- httpRequest->setEndOffsetOverride(endOffset);
+ if(endOffset > 0) {
+ httpRequest->setEndOffsetOverride(endOffset);
+ }
return httpRequest;
}
} // namespace
@@ -181,7 +183,9 @@ bool HttpRequestCommand::executeInternal() {
const SharedHandle<Segment>& segment = *itr;
if(!httpConnection_->isIssued(segment)) {
int64_t endOffset = 0;
- if(getRequestGroup()->getTotalLength() > 0 && getPieceStorage()) {
+ // FTP via HTTP proxy does not support end byte marker
+ if(getRequest()->getProtocol() != "ftp" &&
+ getRequestGroup()->getTotalLength() > 0 && getPieceStorage()) {
size_t nextIndex =
getPieceStorage()->getNextUsedIndex(segment->getIndex());
endOffset = std::min