]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/acquire-worker.cc
merged net-update fixes from apt--mvo
[apt.git] / apt-pkg / acquire-worker.cc
index 25d40ef542f82a7f8af80c75e6284b6b2c1cf7ff..1a754dae905cd3f8aa6e49076ed07c7098be3e65 100644 (file)
@@ -267,8 +267,25 @@ bool pkgAcquire::Worker::RunMessages()
               _error->Warning("Bizarre Error - File size is not what the server reported %s %lu",
                               LookupTag(Message,"Size","0").c_str(),TotalSize);
 
               _error->Warning("Bizarre Error - File size is not what the server reported %s %lu",
                               LookupTag(Message,"Size","0").c_str(),TotalSize);
 
+           // see if there is a hash to verify
+           string RecivedHash;
+           HashString expectedHash(Owner->HashSum());
+           if(!expectedHash.empty()) 
+           {
+              string hashTag = expectedHash.HashType()+"-Hash";
+              string hashSum = LookupTag(Message, hashTag.c_str());
+              if(!hashSum.empty())
+                 RecivedHash = expectedHash.HashType() + ":" + hashSum;
+              if(_config->FindB("Debug::pkgAcquire::Auth", false) == true)
+              {
+                 clog << "201 URI Done: " << Owner->DescURI() << endl
+                      << "RecivedHash: " << RecivedHash << endl
+                      << "ExpectedHash: " << expectedHash.toStr() 
+                      << endl << endl;
+              }
+           }
            Owner->Done(Message,atoi(LookupTag(Message,"Size","0").c_str()),
            Owner->Done(Message,atoi(LookupTag(Message,"Size","0").c_str()),
-                       LookupTag(Message,"MD5-Hash"),Config);
+                       RecivedHash.c_str(), Config);
            ItemDone();
            
            // Log that we are done
            ItemDone();
            
            // Log that we are done
@@ -308,6 +325,7 @@ bool pkgAcquire::Worker::RunMessages()
            // set some status
            if(LookupTag(Message,"FailReason") == "Timeout" || 
               LookupTag(Message,"FailReason") == "TmpResolveFailure" ||
            // set some status
            if(LookupTag(Message,"FailReason") == "Timeout" || 
               LookupTag(Message,"FailReason") == "TmpResolveFailure" ||
+              LookupTag(Message,"FailReason") == "ResolveFailure" ||
               LookupTag(Message,"FailReason") == "ConnectionRefused") 
               Owner->Status = pkgAcquire::Item::StatTransientNetworkError;
 
               LookupTag(Message,"FailReason") == "ConnectionRefused") 
               Owner->Status = pkgAcquire::Item::StatTransientNetworkError;