X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/bedb5293c16d105966d9bf48951483af0fbaff2a..5273f1bf4da222c54e7abe9f3c6482496f8e09fd:/apt-pkg/acquire-worker.cc

diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc
index 8ab67778b..1a754dae9 100644
--- a/apt-pkg/acquire-worker.cc
+++ b/apt-pkg/acquire-worker.cc
@@ -12,9 +12,6 @@
    ##################################################################### */
 									/*}}}*/
 // Include Files							/*{{{*/
-#ifdef __GNUG__
-#pragma implementation "apt-pkg/acquire-worker.h"
-#endif
 #include <apt-pkg/acquire-worker.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/configuration.h>
@@ -270,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);
 
+	    // 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()),
-			LookupTag(Message,"MD5-Hash"),Config);
+			RecivedHash.c_str(), Config);
 	    ItemDone();
 	    
 	    // Log that we are done
@@ -311,6 +325,7 @@ bool pkgAcquire::Worker::RunMessages()
 	    // 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;