varnishcache / varnish-cache

Varnish Cache source code repository
https://www.varnish-cache.org
Other
3.64k stars 374 forks source link

range: New http_GetContentRange() semantics #4091

Open dridi opened 6 months ago

dridi commented 6 months ago

This function returns the content length and puts range indices in lo and hi arguments. A content length of -1 used to be interpreted as something to ignore, but there is a case where the content length may be unknown.

Since we can't represent a zero-length range, because both bounds are inclusive, zero now denotes the lack of content-range header.

Unknown range units are treated as errors as they wouldn't pass the busyobj check for the range header, even for pass transactions. The only way to use "extension" range units is to turn http_range_support off.

The calling convention for http_GetContentRange() remains otherwise the same, and for good measure http_GetContentLength() received a similar description.

Fixes #4089

dridi commented 4 months ago

I haven't had a chance to look at your suggestion from https://github.com/varnishcache/varnish-cache/issues/4089#issuecomment-2129395473.