diff options
author | David Kalnischkies <david@kalnischkies.de> | 2021-09-16 19:33:24 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2021-09-16 22:38:46 +0200 |
commit | 61c1d7d3658fdcd4b32f8b071cef7941120f8abc (patch) | |
tree | 0c98275aabc5b839becc3b5d589d62b9f67a6595 /methods | |
parent | 883a12310a4130370965eab0a710a2c8fae6cc09 (diff) |
Add AllowRange option to disable HTTP Range usage
apt makes heavy usage of HTTP1.1 features including Range and If-Range.
Sadly it is not obvious if the involved server(s) (and proxies) actually
support them all. The Acquire::http::AllowRange option defaults to true
as before, but now a user can disable Range usage if it is known that
the involved server is not dealing with such requests correctly.
Diffstat (limited to 'methods')
-rw-r--r-- | methods/basehttp.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/methods/basehttp.cc b/methods/basehttp.cc index f2c4156e1..396b33999 100644 --- a/methods/basehttp.cc +++ b/methods/basehttp.cc @@ -246,7 +246,7 @@ bool RequestState::HeaderLine(string const &Line) /*{{{*/ return true; } - if (stringcasecmp(Tag, "Accept-Ranges:") == 0) + if (Server->RangesAllowed && stringcasecmp(Tag, "Accept-Ranges:") == 0) { std::string ranges = ',' + Val + ','; ranges.erase(std::remove(ranges.begin(), ranges.end(), ' '), ranges.end()); @@ -276,7 +276,6 @@ void ServerState::Reset() /*{{{*/ Persistent = false; Pipeline = false; PipelineAllowed = true; - RangesAllowed = true; PipelineAnswersReceived = 0; } /*}}}*/ @@ -607,6 +606,7 @@ int BaseHttpMethod::Loop() setPostfixForMethodNames(::URI(Queue->Uri).Host.c_str()); AllowRedirect = ConfigFindB("AllowRedirect", true); PipelineDepth = ConfigFindI("Pipeline-Depth", 10); + Server->RangesAllowed = ConfigFindB("AllowRanges", true); Debug = DebugEnabled(); } |