diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-10-31 07:56:01 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-10-31 07:56:01 +0000 |
| commit | 35cc4ed1e786a14a1438ad4f13d37a4b968b6f25 (patch) | |
| tree | f819fb9d38d0f2b6348e3b1d980769512aa36c68 /src/HttpHeader.cc | |
| parent | 2b458da480074f615c1a9d78cbe2e31dcebc94d7 (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.cc | 8 |
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, '-'); |
