]> git.saurik.com Git - apt.git/commitdiff
cleanup
authorMichael Vogt <mvo@ubuntu.com>
Mon, 29 Sep 2014 15:38:23 +0000 (17:38 +0200)
committerMichael Vogt <mvo@ubuntu.com>
Mon, 29 Sep 2014 15:38:23 +0000 (17:38 +0200)
apt-pkg/acquire-item.cc
apt-pkg/acquire-item.h

index 3d6924847fda25c924f3de97accaeb6065c11109..5beb7e190141033bbda8693a00ae80a6d4f9508c 100644 (file)
@@ -627,7 +627,9 @@ void pkgAcqIndexDiffs::Finish(bool allDone)
       // this happens if we have a up-to-date indexfile
       if(!FileExists(PartialFile))
          PartialFile = DestFile;
-      
+
+      TransactionManager->TransactionStageCopy(this, PartialFile, DestFile);
+
       // this is for the "real" finish
       Complete = true;
       Status = StatDone;
@@ -892,8 +894,7 @@ void pkgAcqIndexMergeDiffs::Done(string Message,unsigned long long Size,HashStri
                   << DestFile << " -> " << FinalFile << std::endl;
 
       // queue for copy by the transaction manager
-      PartialFile = DestFile;
-      DestFile = FinalFile;
+      TransactionManager->TransactionStageCopy(this, DestFile, FinalFile);
 
       // ensure the ed's are gone regardless of list-cleanup
       for (std::vector<pkgAcqIndexMergeDiffs *>::const_iterator I = allPatches->begin();
@@ -1178,8 +1179,7 @@ void pkgAcqIndex::Done(string Message, unsigned long long Size,
         unlink(CompressedFile.c_str());
 
       // Done, queue for rename on transaction finished
-      PartialFile = DestFile;
-      DestFile = GetFinalFilename();
+      TransactionManager->TransactionStageCopy(this, DestFile, GetFinalFilename());
 
       return;
    }
@@ -1428,6 +1428,22 @@ void pkgAcqMetaBase::CommitTransaction()
    }
 }
 
+void pkgAcqMetaBase::TransactionStageCopy(Item *I,
+                                          const std::string &From,
+                                          const std::string &To)
+{
+   I->PartialFile = From;
+   I->DestFile = To;
+}
+
+void pkgAcqMetaBase::TransactionStageRemoval(Item *I,
+                                             const std::string &FinalFile)
+{
+   I->PartialFile = "";
+   I->DestFile = FinalFile; 
+}
+
+
                                                                        /*{{{*/
 bool pkgAcqMetaBase::GenerateAuthWarning(const std::string &RealURI,
                                          const std::string &Message)
@@ -1473,7 +1489,7 @@ pkgAcqMetaSig::pkgAcqMetaSig(pkgAcquire *Owner,                   /*{{{*/
    pkgAcqMetaBase(Owner, IndexTargets, MetaIndexParser, 
                   HashStringList(), TransactionManager),
    RealURI(URI), MetaIndexFile(MetaIndexFile), URIDesc(URIDesc),
-   ShortDesc(ShortDesc), AuthPass(false), IMSHit(false)
+   ShortDesc(ShortDesc)
 {
    DestFile = _config->FindDir("Dir::State::lists") + "partial/";
    DestFile += URItoFileName(URI);
@@ -1547,7 +1563,7 @@ void pkgAcqMetaSig::Done(string Message,unsigned long long Size, HashStringList
       string FinalFile = _config->FindDir("Dir::State::lists");
       FinalFile += URItoFileName(RealURI);
          
-      DestFile = PartialFile = FinalFile;
+      TransactionManager->TransactionStageCopy(this, FinalFile, FinalFile);
    }
 
    // queue for verify
@@ -1567,8 +1583,10 @@ void pkgAcqMetaSig::Done(string Message,unsigned long long Size, HashStringList
       PartialFile = _config->FindDir("Dir::State::lists") + "partial/";
       PartialFile += URItoFileName(RealURI);
       
-      DestFile = _config->FindDir("Dir::State::lists");
-      DestFile += URItoFileName(RealURI);
+      std::string FinalFile = _config->FindDir("Dir::State::lists");
+      FinalFile += URItoFileName(RealURI);
+
+      TransactionManager->TransactionStageCopy(this, PartialFile, FinalFile);
    }
 
    // we parse the MetaIndexFile here because at this point we can
@@ -1606,7 +1624,7 @@ void pkgAcqMetaSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf)/*{{{*/
    // transaction
    DestFile =  _config->FindDir("Dir::State::lists") + "partial/";
    DestFile += URItoFileName(RealURI);
-   PartialFile = "";
+   TransactionManager->TransactionStageRemoval(this, DestFile);
 
    // FIXME: duplicated code from pkgAcqMetaIndex
    if (AuthPass == true)
@@ -1651,7 +1669,6 @@ pkgAcqMetaIndex::pkgAcqMetaIndex(pkgAcquire *Owner,                       /*{{{*/
    pkgAcqMetaBase(Owner, IndexTargets, MetaIndexParser, HashStringList(),
                   TransactionManager), 
    RealURI(URI), URIDesc(URIDesc), ShortDesc(ShortDesc),
-   AuthPass(false), IMSHit(false),
    MetaIndexSigURI(MetaIndexSigURI), MetaIndexSigURIDesc(MetaIndexSigURIDesc),
    MetaIndexSigShortDesc(MetaIndexSigShortDesc)
 {
@@ -1752,9 +1769,9 @@ void pkgAcqMetaIndex::Done(string Message,unsigned long long Size,HashStringList
       FinalFile += URItoFileName(RealURI);
       if (SigFile == DestFile)
         SigFile = FinalFile;
+
       // queue for copy in place
-      PartialFile = DestFile;
-      DestFile = FinalFile;
+      TransactionManager->TransactionStageCopy(this, DestFile, FinalFile);
    }
 }
                                                                        /*}}}*/
@@ -2077,8 +2094,7 @@ void pkgAcqMetaIndex::Failed(string Message,
       }
 
       // Done, queue for rename on transaction finished
-      PartialFile = DestFile;
-      DestFile = FinalFile;
+      TransactionManager->TransactionStageCopy(this, DestFile, FinalFile);
    }
 
    _error->Warning(_("The data from '%s' is not signed. Packages "
@@ -2197,8 +2213,7 @@ void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /*
       // impression (CVE-2012-0214)
       string FinalFile = _config->FindDir("Dir::State::lists");
       FinalFile.append(URItoFileName(RealURI));
-      PartialFile = "";
-      DestFile = FinalFile;
+      TransactionManager->TransactionStageRemoval(this, FinalFile);
 
       new pkgAcqMetaIndex(Owner, TransactionManager,
                        MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc,
index 3c81f77a9aff940c2940b29a0d93f5789f7b2fd7..e560da956b812077fa5efbd60bc978db7480ee2a 100644 (file)
@@ -364,6 +364,13 @@ class pkgAcqMetaBase  : public pkgAcquire::Item
     */
    const std::vector<IndexTarget*>* IndexTargets;
 
+   /** \brief If \b true, the index's signature is currently being verified.
+    */
+   bool AuthPass;
+
+   // required to deal gracefully with problems caused by incorrect ims hits
+   bool IMSHit; 
+
    /** \brief Starts downloading the individual index files.
     *
     *  \param verify If \b true, only indices whose expected hashsum
@@ -381,6 +388,15 @@ class pkgAcqMetaBase  : public pkgAcquire::Item
    bool TransactionHasError() APT_PURE;
    void CommitTransaction();
 
+   /** \brief Stage (queue) a copy action when the transaction is commited
+    */
+   void TransactionStageCopy(Item *I,
+                             const std::string &From, 
+                             const std::string &To);
+   /** \brief Stage (queue) a removal action when the transaction is commited
+    */
+   void TransactionStageRemoval(Item *I, const std::string &FinalFile);
+
    // helper for the signature warning
    bool GenerateAuthWarning(const std::string &RealURI,
                             const std::string &Message);
@@ -392,7 +408,8 @@ class pkgAcqMetaBase  : public pkgAcquire::Item
                   HashStringList const &ExpectedHashes=HashStringList(),
                   pkgAcqMetaBase *TransactionManager=NULL)
       : Item(Owner, ExpectedHashes, TransactionManager),
-        MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets) {};
+        MetaIndexParser(MetaIndexParser), IndexTargets(IndexTargets),
+        AuthPass(false), IMSHit(false) {};
 };
 
 /** \brief An acquire item that downloads the detached signature       {{{
@@ -415,17 +432,14 @@ class pkgAcqMetaSig : public pkgAcqMetaBase
     */
    std::string RealURI;
 
-   std::string URIDesc;
-   std::string ShortDesc;
-
    /** \brief The file we need to verify */
    std::string MetaIndexFile;
 
-   /** \brief If we are in fetching or download state */
-   bool AuthPass;
+   /** \brief Long URI description used in the acquire system */
+   std::string URIDesc;
 
-   /** \brief Was this file already on disk */
-   bool IMSHit;
+   /** \brief Short URI description used in the acquire system */
+   std::string ShortDesc;
 
    public:
    
@@ -474,12 +488,6 @@ class pkgAcqMetaIndex : public pkgAcqMetaBase
     */
    std::string SigFile;
 
-   /** \brief If \b true, the index's signature is currently being verified.
-    */
-   bool AuthPass;
-   // required to deal gracefully with problems caused by incorrect ims hits
-   bool IMSHit; 
-
    /** \brief Check that the release file is a release file for the
     *  correct distribution.
     *