From c9f3e0cdacbe24abccb2bbc0eab6c6b1a15d3bd9 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Mon, 15 Nov 2010 16:33:17 +0100 Subject: cmdline/apt-get.cc: add hash to the downloader --- cmdline/apt-get.cc | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'cmdline') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 3fab4b17e..4e96bc67d 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -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 /*{{{*/ -- cgit v1.2.3