summaryrefslogtreecommitdiff
path: root/src/HttpHeader.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-10-31 07:56:01 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-10-31 07:56:01 +0000
commit35cc4ed1e786a14a1438ad4f13d37a4b968b6f25 (patch)
treef819fb9d38d0f2b6348e3b1d980769512aa36c68 /src/HttpHeader.cc
parent2b458da480074f615c1a9d78cbe2e31dcebc94d7 (diff)
2010-10-31 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Return empty range if byte-range-resp-spec or instance-length is "*" in Content-Range header to prevent aria2 from emitting error failing to convert "*" to a integer. * src/HttpHeader.cc * test/HttpHeaderTest.cc
Diffstat (limited to 'src/HttpHeader.cc')
-rw-r--r--src/HttpHeader.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/HttpHeader.cc b/src/HttpHeader.cc
index cbd0739b..5f63e730 100644
--- a/src/HttpHeader.cc
+++ b/src/HttpHeader.cc
@@ -180,6 +180,14 @@ RangeHandle HttpHeader::getRange() const
std::pair<std::string, std::string> byteRangeSpecPair;
util::divide(byteRangeSpecPair, byteRangeSpec, '/');
+ if(util::strip(byteRangeSpecPair.first) == "*" ||
+ util::strip(byteRangeSpecPair.second) == "*") {
+ // If byte-range-resp-spec or instance-length is "*", we returns
+ // empty Range. The former is usually sent with 416 (Request range
+ // not satisfiable) status.
+ return SharedHandle<Range>(new Range());
+ }
+
std::pair<std::string, std::string> byteRangeRespSpecPair;
util::divide(byteRangeRespSpecPair, byteRangeSpecPair.first, '-');