http: Send a Range header even when the offset is 0
Using Range allows for getting the full file size from the Content-Range header in the response, even if the server sends back the response using chunked Transfer-Encoding, which does not allow using Content-Length.
This commit is contained in:
parent
c1228315c9
commit
0dd1ff67c8
@ -1469,10 +1469,10 @@ static int http_connect(URLContext *h, const char *path, const char *local_path,
|
|||||||
}
|
}
|
||||||
if (!has_header(s->headers, "\r\nAccept: "))
|
if (!has_header(s->headers, "\r\nAccept: "))
|
||||||
av_bprintf(&request, "Accept: */*\r\n");
|
av_bprintf(&request, "Accept: */*\r\n");
|
||||||
// Note: we send this on purpose even when s->off is 0 when we're probing,
|
// Note: we send the Range header on purpose, even when we're probing,
|
||||||
// since it allows us to detect more reliably if a (non-conforming)
|
// since it allows us to detect more reliably if a (non-conforming)
|
||||||
// server supports seeking by analysing the reply headers.
|
// server supports seeking by analysing the reply headers.
|
||||||
if (!has_header(s->headers, "\r\nRange: ") && !post && (s->off > 0 || s->end_off || s->seekable == -1)) {
|
if (!has_header(s->headers, "\r\nRange: ") && !post && (s->off > 0 || s->end_off || s->seekable != 0)) {
|
||||||
av_bprintf(&request, "Range: bytes=%"PRIu64"-", s->off);
|
av_bprintf(&request, "Range: bytes=%"PRIu64"-", s->off);
|
||||||
if (s->end_off)
|
if (s->end_off)
|
||||||
av_bprintf(&request, "%"PRId64, s->end_off - 1);
|
av_bprintf(&request, "%"PRId64, s->end_off - 1);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user