// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: ftp.cc,v 1.16 1999/11/29 23:20:27 jgg Exp $
+// $Id: ftp.cc,v 1.17 1999/12/09 03:45:56 jgg Exp $
/* ######################################################################
HTTP Aquire Method - This is the FTP aquire method for APT.
int Res = read(ServerFd,Buffer + Len,sizeof(Buffer) - Len);
if (Res <= 0)
{
+ _error->Errno("read","Read error");
Close();
- return _error->Errno("read","Read error");
+ return false;
}
Len += Res;
}
int Res = write(ServerFd,S + Start,Len);
if (Res <= 0)
{
+ _error->Errno("write","Write Error");
Close();
- return _error->Errno("write","Write Error");
+ return false;
}
Len -= Res;
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: http.cc,v 1.40 1999/11/29 23:20:27 jgg Exp $
+// $Id: http.cc,v 1.41 1999/12/09 03:45:56 jgg Exp $
/* ######################################################################
HTTP Aquire Method - This is the HTTP aquire method for APT.
// Queue the requests
int Depth = -1;
bool Tail = false;
- for (FetchItem *I = Queue; I != 0 && Depth < (signed)PipelineDepth; I = I->Next, Depth++)
+ for (FetchItem *I = Queue; I != 0 && Depth < (signed)PipelineDepth;
+ I = I->Next, Depth++)
{
+ // If pipelining is disabled, we only queue 1 request
+ if (Server->Pipeline == false && Depth >= 0)
+ break;
+
// Make sure we stick with the same server
if (Server->Comp(I->Uri) == false)
break;
QueueBack = I->Next;
SendReq(I,Server->Out);
continue;
- }
+ }
}
return true;
FailCounter++;
_error->Discard();
Server->Close();
-
+ Server->Pipeline = false;
+
if (FailCounter >= 2)
{
Fail("Connection failed",true);
// -*- mode: cpp; mode: fold -*-
-// Description /*{{{*/// $Id: http.h,v 1.6 1998/12/10 05:39:56 jgg Exp $
+// Description /*{{{*/// $Id: http.h,v 1.7 1999/12/09 03:45:56 jgg Exp $
/* ######################################################################
HTTP Aquire Method - This is the HTTP aquire method for APT.
bool HaveContent;
enum {Chunked,Stream,Closes} Encoding;
enum {Header, Data} State;
+ bool Pipeline;
HttpMethod *Owner;
bool HeaderLine(string Line);
bool Comp(URI Other) {return Other.Host == ServerName.Host && Other.Port == ServerName.Port;};
void Reset() {Major = 0; Minor = 0; Result = 0; Size = 0; StartPos = 0;
- Encoding = Closes; time(&Date); ServerFd = -1;};
+ Encoding = Closes; time(&Date); ServerFd = -1;
+ Pipeline = true;};
int RunHeaders();
bool RunData();
// -*- mode: cpp; mode: fold -*-
// Description /*{{{*/
-// $Id: rfc2553emu.cc,v 1.3 1999/05/27 05:51:18 jgg Exp $
+// $Id: rfc2553emu.cc,v 1.4 1999/12/09 03:45:56 jgg Exp $
/* ######################################################################
RFC 2553 Emulation - Provides emulation for RFC 2553 getaddrinfo,
Proto = hints->ai_socktype;
// Not a number, must be a name.
- if (End != servname + strlen(End))
+ if (End != servname + strlen(servname))
{
struct servent *Srv = 0;