=== modified file 'src/HttpHeader.cc' --- src/HttpHeader.cc 2014-02-19 17:01:30 +0000 +++ src/HttpHeader.cc 2014-02-28 02:30:52 +0000 @@ -136,7 +136,7 @@ {"Public", HDR_PUBLIC, ftStr}, {"Range", HDR_RANGE, ftPRange}, {"Referer", HDR_REFERER, ftStr}, - {"Request-Range", HDR_REQUEST_RANGE, ftPRange}, /* usually matches HDR_RANGE */ + {"Request-Range", HDR_REQUEST_RANGE, ftStr},/* legacy header */ {"Retry-After", HDR_RETRY_AFTER, ftStr}, /* for now (ftDate_1123 or ftInt!) */ {"Server", HDR_SERVER, ftStr}, {"Set-Cookie", HDR_SET_COOKIE, ftStr}, @@ -273,7 +273,7 @@ static HttpHeaderMask HopByHopHeadersMask; static http_hdr_type HopByHopHeadersArr[] = { HDR_CONNECTION, HDR_HTTP2_SETTINGS, HDR_KEEP_ALIVE, /*HDR_PROXY_AUTHENTICATE,*/ HDR_PROXY_AUTHORIZATION, - HDR_TE, HDR_TRAILER, HDR_TRANSFER_ENCODING, HDR_UPGRADE, HDR_PROXY_CONNECTION + HDR_TE, HDR_TRAILER, HDR_TRANSFER_ENCODING, HDR_UPGRADE, HDR_PROXY_CONNECTION, HDR_REQUEST_RANGE }; /* header accounting */ @@ -1398,14 +1398,10 @@ HttpHeader::getRange() const { HttpHdrRange *r = NULL; - HttpHeaderEntry *e; - /* some clients will send "Request-Range" _and_ *matching* "Range" - * who knows, some clients might send Request-Range only; - * this "if" should work correctly in both cases; - * hopefully no clients send mismatched headers! */ - - if ((e = findEntry(HDR_RANGE)) || - (e = findEntry(HDR_REQUEST_RANGE))) { + /* Yes some clients may send Request-Range headers. + * Do not get it confused with the Range feature in HTTP. + */ + if (HttpHeaderEntry *e = findEntry(HDR_RANGE)) { r = HttpHdrRange::ParseCreate(&e->value); httpHeaderNoteParsedEntry(e->id, e->value, !r); } === modified file 'src/client_side_request.cc' --- src/client_side_request.cc 2014-02-13 06:09:26 +0000 +++ src/client_side_request.cc 2014-02-28 01:51:33 +0000 @@ -1145,12 +1145,11 @@ } } - /* Only HEAD and GET requests permit a Range or Request-Range header. + /* Only HEAD and GET requests permit a Range header. * If these headers appear on any other type of request, delete them now. */ else { req_hdr->delById(HDR_RANGE); - req_hdr->delById(HDR_REQUEST_RANGE); delete request->range; request->range = NULL; } === modified file 'src/http.cc' --- src/http.cc 2013-12-06 23:52:26 +0000 +++ src/http.cc 2014-02-28 02:12:38 +0000 @@ -2021,11 +2021,8 @@ break; case HDR_RANGE: - case HDR_IF_RANGE: - - case HDR_REQUEST_RANGE: - /** \par Range:, If-Range:, Request-Range: + /** \par Range:, If-Range: * Only pass if we accept ranges */ if (!we_do_ranges) hdr_out->addEntry(e->clone());