Index: net/http/partial_data.cc |
diff --git a/net/http/partial_data.cc b/net/http/partial_data.cc |
index ee3678b5ea05c69ed49dd11d0309c346a1fbfec2..6ef7e859f2174740114241d50676c4e9975cc666 100644 |
--- a/net/http/partial_data.cc |
+++ b/net/http/partial_data.cc |
@@ -382,40 +382,28 @@ void PartialData::FixResponseHeaders(HttpResponseHeaders* headers, |
if (truncated_) |
return; |
+ if (byte_range_.IsValid() && success) { |
+ HttpUtil::UpdateResponseHeadersWithRange( |
+ byte_range_, resource_size_, !sparse_entry_, headers); |
+ return; |
+ } |
+ |
headers->RemoveHeader(kLengthHeader); |
headers->RemoveHeader(kRangeHeader); |
- int64 range_len, start, end; |
+ // success==false cases. |
rvargas (doing something else)
2014/03/05 19:47:33
nit: remove comment
kinuko
2014/03/06 04:11:29
Done.
|
if (byte_range_.IsValid()) { |
- if (success) { |
- if (!sparse_entry_) |
- headers->ReplaceStatusLine("HTTP/1.1 206 Partial Content"); |
- |
- DCHECK(byte_range_.HasFirstBytePosition()); |
- DCHECK(byte_range_.HasLastBytePosition()); |
- start = byte_range_.first_byte_position(); |
- end = byte_range_.last_byte_position(); |
- range_len = end - start + 1; |
- } else { |
- headers->ReplaceStatusLine( |
- "HTTP/1.1 416 Requested Range Not Satisfiable"); |
- start = 0; |
- end = 0; |
- range_len = 0; |
- } |
- |
- headers->AddHeader( |
- base::StringPrintf("%s: bytes %" PRId64 "-%" PRId64 "/%" PRId64, |
- kRangeHeader, start, end, resource_size_)); |
+ headers->ReplaceStatusLine("HTTP/1.1 416 Requested Range Not Satisfiable"); |
+ headers->AddHeader(base::StringPrintf("%s: bytes 0-0/%" PRId64, |
+ kRangeHeader, resource_size_)); |
+ headers->AddHeader(base::StringPrintf("%s: 0", kLengthHeader)); |
} else { |
// TODO(rvargas): Is it safe to change the protocol version? |
headers->ReplaceStatusLine("HTTP/1.1 200 OK"); |
DCHECK_NE(resource_size_, 0); |
- range_len = resource_size_; |
+ headers->AddHeader(base::StringPrintf("%s: %" PRId64, kLengthHeader, |
+ resource_size_)); |
} |
- |
- headers->AddHeader(base::StringPrintf("%s: %" PRId64, kLengthHeader, |
- range_len)); |
} |
void PartialData::FixContentLength(HttpResponseHeaders* headers) { |