diff options
author | Raphael Geissert <atomo64@gmail.com> | 2013-07-14 18:38:03 +0200 |
---|---|---|
committer | Raphael Geissert <atomo64@gmail.com> | 2013-07-14 18:38:03 +0200 |
commit | 2b9c9b7f28b18f6ae3e422020e8934872b06c9f3 (patch) | |
tree | 539f29f1cba41e60504b2645f8bdc3b24b2953ab | |
parent | c7a629dd114c41a1244744e2f5085df2f505dc90 (diff) | |
download | apt-2b9c9b7f28b18f6ae3e422020e8934872b06c9f3.tar.gz |
Do not send a connection: keep-alive, at all
-rw-r--r-- | methods/http.cc | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/methods/http.cc b/methods/http.cc index db1085a2d..6e03e9d63 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -683,27 +683,14 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) if (Itm->Uri.length() >= sizeof(Buf)) abort(); - /* Build the request. We include a keep-alive header only for non-proxy - requests. This is to tweak old http/1.0 servers that do support keep-alive - but not HTTP/1.1 automatic keep-alive. Doing this with a proxy server - will glitch HTTP/1.0 proxies because they do not filter it out and - pass it on, HTTP/1.1 says the connection should default to keep alive - and we expect the proxy to do this */ - if (Proxy.empty() == true || Proxy.Host.empty()) - { - // see LP bugs #1003633 and #1086997. The "+" is encoded as a workaround - // for a amazon S3 bug - sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: keep-alive\r\n", - QuoteString(Uri.Path,"+~ ").c_str(),ProperHost.c_str()); - } - else - { - /* Generate a cache control header if necessary. We place a max - cache age on index files, optionally set a no-cache directive - and a no-store directive for archives. */ - sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\n", - Itm->Uri.c_str(),ProperHost.c_str()); - } + /* Build the request. No keep-alive is included as it is the default + in 1.1, can cause problems with proxies, and we are an HTTP/1.1 + client anyway. + C.f. https://tools.ietf.org/wg/httpbis/trac/ticket/158 */ + // see LP bugs #1003633 and #1086997. The "+" is encoded as a workaround + // for a amazon S3 bug + sprintf(Buf,"GET %s HTTP/1.1\r\nHost: %s\r\n", + QuoteString(Uri.Path,"+~ ").c_str(),ProperHost.c_str()); // generate a cache control header (if needed) if (_config->FindB("Acquire::http::No-Cache",false) == true) { |