diff options
author | Otavio Salvador <otavio@ossystems.com.br> | 2007-07-14 13:02:52 -0300 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2007-07-14 13:02:52 -0300 |
commit | 29925560efccf3f5801a122f6061e2cf2046c955 (patch) | |
tree | ef59a50db5c46eeff6338db285e158bfe01f2b64 /methods | |
parent | 4ac3c092c5c59476ec1ed34a93dffecdf816fae5 (diff) | |
parent | e53ee4caf5ecf882e3df2665a8e1c2a9e6da6fb0 (diff) |
Merge fixes branch.
Diffstat (limited to 'methods')
-rw-r--r-- | methods/http.cc | 25 | ||||
-rw-r--r-- | methods/http.h | 2 | ||||
-rw-r--r-- | methods/https.cc | 7 | ||||
-rw-r--r-- | methods/https.h | 4 |
4 files changed, 25 insertions, 13 deletions
diff --git a/methods/http.cc b/methods/http.cc index d9487be88..068d26978 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -3,7 +3,7 @@ // $Id: http.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $ /* ###################################################################### - HTTP Aquire Method - This is the HTTP aquire method for APT. + HTTP Acquire Method - This is the HTTP aquire method for APT. It uses HTTP/1.1 and many of the fancy options there-in, such as pipelining, range, if-range and so on. @@ -996,7 +996,6 @@ bool HttpMethod::Fetch(FetchItem *) // Queue the requests int Depth = -1; - bool Tail = false; for (FetchItem *I = Queue; I != 0 && Depth < (signed)PipelineDepth; I = I->Next, Depth++) { @@ -1008,8 +1007,6 @@ bool HttpMethod::Fetch(FetchItem *) if (Server->Comp(I->Uri) == false) break; if (QueueBack == I) - Tail = true; - if (Tail == true) { QueueBack = I->Next; SendReq(I,Server->Out); @@ -1071,7 +1068,6 @@ int HttpMethod::Loop() delete Server; Server = new ServerState(Queue->Uri,this); } - /* If the server has explicitly said this is the last connection then we pre-emptively shut down the pipeline and tear down the connection. This will speed up HTTP/1.0 servers a tad @@ -1168,8 +1164,25 @@ int HttpMethod::Loop() URIDone(Res); } else - Fail(true); + { + if (Server->ServerFd == -1) + { + FailCounter++; + _error->Discard(); + Server->Close(); + + if (FailCounter >= 2) + { + Fail(_("Connection failed"),true); + FailCounter = 0; + } + QueueBack = Queue; + } + else + Fail(true); + } + break; } diff --git a/methods/http.h b/methods/http.h index a6191e501..6753a9901 100644 --- a/methods/http.h +++ b/methods/http.h @@ -3,7 +3,7 @@ // $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ /* ###################################################################### - HTTP Aquire Method - This is the HTTP aquire method for APT. + HTTP Acquire Method - This is the HTTP aquire method for APT. ##################################################################### */ /*}}}*/ diff --git a/methods/https.cc b/methods/https.cc index b758e4ab3..d48ac97fb 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -3,7 +3,7 @@ // $Id: http.cc,v 1.59 2004/05/08 19:42:35 mdz Exp $ /* ###################################################################### - HTTPS Aquire Method - This is the HTTPS aquire method for APT. + HTTPS Acquire Method - This is the HTTPS aquire method for APT. It uses libcurl @@ -50,13 +50,13 @@ HttpsMethod::progress_callback(void *clientp, double dltotal, double dlnow, { HttpsMethod *me = (HttpsMethod *)clientp; if(dltotal > 0 && me->Res.Size == 0) { - me->Res.Size = dltotal; + me->Res.Size = (unsigned long)dltotal; me->URIStart(me->Res); } return 0; } -bool HttpsMethod::SetupProxy() +void HttpsMethod::SetupProxy() { URI ServerName = Queue->Uri; @@ -84,7 +84,6 @@ bool HttpsMethod::SetupProxy() } // Determine what host and port to use based on the proxy settings - int Port = 0; string Host; if (Proxy.empty() == true || Proxy.Host.empty() == true) { diff --git a/methods/https.h b/methods/https.h index 6620a10fc..2c33d95ee 100644 --- a/methods/https.h +++ b/methods/https.h @@ -3,7 +3,7 @@ // $Id: http.h,v 1.12 2002/04/18 05:09:38 jgg Exp $ /* ###################################################################### - HTTP Aquire Method - This is the HTTP aquire method for APT. + HTTP Acquire Method - This is the HTTP aquire method for APT. ##################################################################### */ /*}}}*/ @@ -29,7 +29,7 @@ class HttpsMethod : public pkgAcqMethod static size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp); static int progress_callback(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow); - bool SetupProxy(); + void SetupProxy(); CURL *curl; FetchResult Res; |