]> git.saurik.com Git - apt.git/blobdiff - methods/http.h
Almost done now
[apt.git] / methods / http.h
index d231aa1f1489f5b759764877f599c136de6c1177..983904ffbe13f712eceacc350f1a8beb18e1c096 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: http.h,v 1.1 1998/11/01 05:30:47 jgg Exp $
+// $Id: http.h,v 1.4 1998/11/11 06:54:22 jgg Exp $
 /* ######################################################################
 
    HTTP Aquire Method - This is the HTTP aquire method for APT.
@@ -81,10 +81,11 @@ struct ServerState
    unsigned int Result;
    char Code[MAXLEN];
    
-   // These are some statistics from the last parsed get line
+   // These are some statistics from the last parsed header lines
    unsigned long Size;
    signed long StartPos;
    time_t Date;
+   bool HaveContent;
    enum {Chunked,Stream,Closes} Encoding;
    enum {Header, Data} State;
    
@@ -100,7 +101,7 @@ struct ServerState
    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;};
-   bool RunHeaders();
+   int RunHeaders();
    bool RunData();
    
    bool Open();
@@ -118,19 +119,23 @@ class HttpMethod : public pkgAcqMethod
    bool ServerDie(ServerState *Srv);
    int DealWithHeaders(FetchResult &Res,ServerState *Srv);
    
+   // In the event of a fatal signal this file will be closed and timestamped.
+   static string FailFile;
+   static int FailFd;
+   static time_t FailTime;
+   static void SigTerm(int);
+   
    public:
    friend ServerState;
 
-   ServerState *Srv;
    int Depth;
    FileFd *File;
    
    int Loop();
    
-   HttpMethod() : pkgAcqMethod("1.2",SingleInstance | Pipeline | SendConfig) 
+   HttpMethod() : pkgAcqMethod("1.2",Pipeline | SendConfig) 
    {
       Depth = 0;
-      Srv = 0;
       File = 0;
       Depth = 0;
    };