From: Michael Vogt Date: Mon, 14 Dec 2009 08:22:29 +0000 (+0100) Subject: merged patches from david (many thanks) X-Git-Tag: 0.7.25~4 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/4407a02f4ead0c8c7906ba2fa96021890237f7d9?ds=inline;hp=-c merged patches from david (many thanks) --- 4407a02f4ead0c8c7906ba2fa96021890237f7d9 diff --combined apt-pkg/init.h index f892e7ff4,b1ed5922b..f0757f644 --- a/apt-pkg/init.h +++ b/apt-pkg/init.h @@@ -21,9 -21,9 +21,7 @@@ // reverse-dependencies of libapt-pkg against the new SONAME. // Non-ABI-Breaks should only increase RELEASE number. // See also buildlib/libversion.mak --// FIXME: this needs to be changed to "4" (without quotes) on the next --// ABI break - #define APT_PKG_MAJOR libc6.9-6-4 + #define APT_PKG_MAJOR 4 #define APT_PKG_MINOR 8 #define APT_PKG_RELEASE 0 diff --combined methods/https.cc index 86d7f3a6b,ad21ef0d3..5d8e63f47 --- a/methods/https.cc +++ b/methods/https.cc @@@ -1,4 -1,4 +1,4 @@@ - // -*- mode: cpp; mode: fold -*- + //-*- mode: cpp; mode: fold -*- // Description /*{{{*/ // $Id: http.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $ /* ###################################################################### @@@ -57,54 -57,38 +57,41 @@@ HttpsMethod::progress_callback(void *cl return 0; } - void HttpsMethod::SetupProxy() -void HttpsMethod::SetupProxy() { /*{{{*/ - URI ServerName = Queue->Uri; - - // Determine the proxy setting - try https first, fallback to http and use env at last - string UseProxy = _config->Find("Acquire::https::Proxy::" + ServerName.Host, - _config->Find("Acquire::http::Proxy::" + ServerName.Host).c_str()); - - if (UseProxy.empty() == true) - UseProxy = _config->Find("Acquire::https::Proxy", _config->Find("Acquire::http::Proxy").c_str()); - - // User want to use NO proxy, so nothing to setup - if (UseProxy == "DIRECT") - return; - - if (UseProxy.empty() == false) { - // Parse no_proxy, a comma (,) separated list of domains we don't want to use - // a proxy for so we stop right here if it is in the list - if (getenv("no_proxy") != 0 && CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) - return; - } else { - const char* result = getenv("http_proxy"); - UseProxy = result == NULL ? "" : result; - } - - // Determine what host and port to use based on the proxy settings - if (UseProxy.empty() == false) { - Proxy = UseProxy; - if (Proxy.Port != 1) - curl_easy_setopt(curl, CURLOPT_PROXYPORT, Proxy.Port); - curl_easy_setopt(curl, CURLOPT_PROXY, Proxy.Host.c_str()); - } ++void HttpsMethod::SetupProxy() /*{{{*/ +{ + URI ServerName = Queue->Uri; + - // Determine the proxy setting - string SpecificProxy = _config->Find("Acquire::http::Proxy::" + ServerName.Host); - if (!SpecificProxy.empty()) - { - if (SpecificProxy == "DIRECT") - Proxy = ""; - else - Proxy = SpecificProxy; - } - else - { - string DefProxy = _config->Find("Acquire::http::Proxy"); - if (!DefProxy.empty()) - { - Proxy = DefProxy; - } - else - { - char* result = getenv("http_proxy"); - Proxy = result ? result : ""; - } - } - - // Parse no_proxy, a , separated list of domains - if (getenv("no_proxy") != 0) ++ // Determine the proxy setting - try https first, fallback to http and use env at last ++ string UseProxy = _config->Find("Acquire::https::Proxy::" + ServerName.Host, ++ _config->Find("Acquire::http::Proxy::" + ServerName.Host).c_str()); ++ ++ if (UseProxy.empty() == true) ++ UseProxy = _config->Find("Acquire::https::Proxy", _config->Find("Acquire::http::Proxy").c_str()); ++ ++ // User want to use NO proxy, so nothing to setup ++ if (UseProxy == "DIRECT") ++ return; ++ ++ if (UseProxy.empty() == false) + { - if (CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) - Proxy = ""; ++ // Parse no_proxy, a comma (,) separated list of domains we don't want to use ++ // a proxy for so we stop right here if it is in the list ++ if (getenv("no_proxy") != 0 && CheckDomainList(ServerName.Host,getenv("no_proxy")) == true) ++ return; ++ } else { ++ const char* result = getenv("http_proxy"); ++ UseProxy = result == NULL ? "" : result; + } - ++ + // Determine what host and port to use based on the proxy settings - string Host; - if (Proxy.empty() == true || Proxy.Host.empty() == true) - { - } - else ++ if (UseProxy.empty() == false) + { - if (Proxy.Port != 0) ++ Proxy = UseProxy; ++ if (Proxy.Port != 1) + curl_easy_setopt(curl, CURLOPT_PROXYPORT, Proxy.Port); + curl_easy_setopt(curl, CURLOPT_PROXY, Proxy.Host.c_str()); + } - } - - + } /*}}}*/ // HttpsMethod::Fetch - Fetch an item /*{{{*/ // --------------------------------------------------------------------- /* This adds an item to the pipeline. We keep the pipeline at a fixed @@@ -191,12 -175,15 +178,15 @@@ bool HttpsMethod::Fetch(FetchItem *Itm curl_easy_setopt(curl, CURLOPT_SSLVERSION, final_version); // cache-control - if(_config->FindB("Acquire::http::No-Cache",false) == false) + if(_config->FindB("Acquire::https::No-Cache", + _config->FindB("Acquire::http::No-Cache",false)) == false) { // cache enabled - if (_config->FindB("Acquire::http::No-Store",false) == true) + if (_config->FindB("Acquire::https::No-Store", + _config->FindB("Acquire::http::No-Store",false)) == true) headers = curl_slist_append(headers,"Cache-Control: no-store"); - ioprintf(ss, "Cache-Control: max-age=%u", _config->FindI("Acquire::http::Max-Age",0)); + ioprintf(ss, "Cache-Control: max-age=%u", _config->FindI("Acquire::https::Max-Age", + _config->FindI("Acquire::http::Max-Age",0))); headers = curl_slist_append(headers, ss.str().c_str()); } else { // cache disabled by user @@@ -206,22 -193,28 +196,28 @@@ curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // speed limit - int dlLimit = _config->FindI("Acquire::http::Dl-Limit",0)*1024; + int dlLimit = _config->FindI("Acquire::https::Dl-Limit", + _config->FindI("Acquire::http::Dl-Limit",0))*1024; if (dlLimit > 0) curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, dlLimit); // set header - curl_easy_setopt(curl, CURLOPT_USERAGENT,"Debian APT-CURL/1.0 ("VERSION")"); + curl_easy_setopt(curl, CURLOPT_USERAGENT, + _config->Find("Acquire::https::User-Agent", + _config->Find("Acquire::http::User-Agent", + "Debian APT-CURL/1.0 ("VERSION")").c_str()).c_str()); // set timeout - int timeout = _config->FindI("Acquire::http::Timeout",120); + int timeout = _config->FindI("Acquire::https::Timeout", + _config->FindI("Acquire::http::Timeout",120)); curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, timeout); //set really low lowspeed timeout (see #497983) curl_easy_setopt(curl, CURLOPT_LOW_SPEED_LIMIT, DL_MIN_SPEED); curl_easy_setopt(curl, CURLOPT_LOW_SPEED_TIME, timeout); // set redirect options and default to 10 redirects - bool AllowRedirect = _config->FindI("Acquire::https::AllowRedirect", true); + bool AllowRedirect = _config->FindB("Acquire::https::AllowRedirect", + _config->FindB("Acquire::http::AllowRedirect",true)); curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, AllowRedirect); curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 10);