]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-method.h
Introduce tolower_ascii_unsafe() and use it for hashing
[apt.git] / apt-pkg / acquire-method.h
index 8a17a5fd52fb832974ebec17210e5f28362f6229..cab2bda4044dbc2de176226881b8b9d9c8753bc6 100644 (file)
@@ -1,6 +1,5 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: acquire-method.h,v 1.15.2.1 2003/12/24 23:09:17 mdz Exp $
 /* ######################################################################
 
    Acquire Method - Method helper class + functions
 /* ######################################################################
 
    Acquire Method - Method helper class + functions
@@ -44,9 +43,20 @@ class pkgAcqMethod
 
       std::string Uri;
       std::string DestFile;
 
       std::string Uri;
       std::string DestFile;
+      int DestFileFd;
       time_t LastModified;
       bool IndexFile;
       bool FailIgnore;
       time_t LastModified;
       bool IndexFile;
       bool FailIgnore;
+      HashStringList ExpectedHashes;
+      // a maximum size we will download, this can be the exact filesize
+      // for when we know it or a arbitrary limit when we don't know the
+      // filesize (like a InRelease file)
+      unsigned long long MaximumSize;
+
+      FetchItem();
+      virtual ~FetchItem();
+      private:
+      void * const d;
    };
    
    struct FetchResult
    };
    
    struct FetchResult
@@ -61,6 +71,9 @@ class pkgAcqMethod
       
       void TakeHashes(class Hashes &Hash);
       FetchResult();
       
       void TakeHashes(class Hashes &Hash);
       FetchResult();
+      virtual ~FetchResult();
+      private:
+      void * const d;
    };
 
    // State
    };
 
    // State
@@ -70,11 +83,12 @@ class pkgAcqMethod
    std::string FailReason;
    std::string UsedMirror;
    std::string IP;
    std::string FailReason;
    std::string UsedMirror;
    std::string IP;
-   
+
    // Handlers for messages
    virtual bool Configuration(std::string Message);
    virtual bool Fetch(FetchItem * /*Item*/) {return true;};
    // Handlers for messages
    virtual bool Configuration(std::string Message);
    virtual bool Fetch(FetchItem * /*Item*/) {return true;};
-   
+   virtual bool URIAcquire(std::string const &/*Message*/, FetchItem *Itm) { return Fetch(Itm); };
+
    // Outgoing messages
    void Fail(bool Transient = false);
    inline void Fail(const char *Why, bool Transient = false) {Fail(std::string(Why),Transient);};
    // Outgoing messages
    void Fail(bool Transient = false);
    inline void Fail(const char *Why, bool Transient = false) {Fail(std::string(Why),Transient);};
@@ -103,8 +117,8 @@ class pkgAcqMethod
    inline void SetIP(std::string aIP) {IP = aIP;};
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
    inline void SetIP(std::string aIP) {IP = aIP;};
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
-   virtual ~pkgAcqMethod() {};
-
+   virtual ~pkgAcqMethod();
+   void DropPrivsOrDie();
    private:
    APT_HIDDEN void Dequeue();
 };
    private:
    APT_HIDDEN void Dequeue();
 };