]> git.saurik.com Git - apt.git/commitdiff
cmdline/apt-get.cc: add hash to the downloader
authorMichael Vogt <michael.vogt@ubuntu.com>
Mon, 15 Nov 2010 15:33:17 +0000 (16:33 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Mon, 15 Nov 2010 15:33:17 +0000 (16:33 +0100)
cmdline/apt-get.cc

index 3fab4b17e2425ef203f6cfedd756e3397abc0ff1..4e96bc67d52e0528ae0d51f5fec301c1a8527e2a 100644 (file)
@@ -2751,6 +2751,7 @@ bool DoDownload(CommandLine &CmdL)
    if (verset.empty() == true)
       return false;
 
+   bool result = true;
    pkgRecords Recs(Cache);
    pkgSourceList *SrcList = Cache.GetSourceList();
    for (APT::VersionSet::const_iterator Ver = verset.begin(); 
@@ -2770,12 +2771,20 @@ bool DoDownload(CommandLine &CmdL)
          return _error->Error("FindIndex failed");
       string uri = index->ArchiveURI(rec.FileName());
       strprintf(descr, _("Downloading %s %s"), Pkg.Name(), Ver.VerStr());
-      // down
-      new pkgAcqFile(&Fetcher, uri, "", 0, descr, Pkg.Name(), ".");
-      int res = Fetcher.Run();
-   }
-
-   return true;
+      // get the most appropriate hash
+      HashString hash;
+      if (rec.SHA256Hash() != "")
+         hash = HashString("sha256", rec.SHA256Hash());
+      else if (rec.SHA1Hash() != "")
+         hash = HashString("sha1", rec.SHA1Hash());
+      else if (rec.MD5Hash() != "")
+         hash = HashString("md5", rec.MD5Hash());
+      // get the file
+      new pkgAcqFile(&Fetcher, uri, hash.toStr(), 0, descr, Pkg.Name(), ".");
+      result &= (Fetcher.Run() == pkgAcquire::Continue);
+   }
+
+   return result;
 }
                                                                        /*}}}*/
 // DoMoo - Never Ask, Never Tell                                       /*{{{*/