From: Michael Vogt Date: Thu, 19 May 2005 08:26:28 +0000 (+0000) Subject: * fix the cache-control header generation X-Git-Tag: 0.7.21~405 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/106e674096a2c6da1e3fa44b88ec228a61ef7dfe * fix the cache-control header generation * methods/http.cc: a cache cache header can now be generated even if no proxy is specified to support "no-cache" for transparent proxies --- diff --git a/debian/changelog b/debian/changelog index 42470eae7..13bce19fe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,8 @@ apt (0.6.37) experimental; urgency=low the virtual pkg (thanks to otavio) * make pinning on the "component" work again (using the section of the archive, we don't use per-section Release files anymore with apt-0.6) + * make it possible to write a cache-control: no-cache header even if + no proxy is set to support transparent proxies (closes ubuntu: #10773) -- diff --git a/methods/http.cc b/methods/http.cc index 81a64d7a3..ba86aa6b6 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -635,9 +635,9 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) 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()); - if (_config->FindB("Acquire::http::No-Cache",false) == true) - strcat(Buf,"Cache-Control: no-cache\r\nPragma: no-cache\r\n"); - else + // only generate a cache control header if we actually want to + // use a cache + if (_config->FindB("Acquire::http::No-Cache",false) == false) { if (Itm->IndexFile == true) sprintf(Buf+strlen(Buf),"Cache-Control: max-age=%u\r\n", @@ -649,6 +649,10 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) } } } + // generate a no-cache header if needed + if (_config->FindB("Acquire::http::No-Cache",false) == true) + strcat(Buf,"Cache-Control: no-cache\r\nPragma: no-cache\r\n"); + string Req = Buf;