From: Michael Vogt Date: Wed, 12 Mar 2014 19:40:01 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/debian/sid' into feature/apt-download-file X-Git-Tag: 0.9.16~4 X-Git-Url: https://git.saurik.com/apt.git/commitdiff_plain/32120cde98308448fbcd31cf7841f13a86d3e0a8 Merge remote-tracking branch 'upstream/debian/sid' into feature/apt-download-file Conflicts: cmdline/apt-helper.cc test/integration/framework test/integration/test-apt-https-no-redirect --- 32120cde98308448fbcd31cf7841f13a86d3e0a8 diff --cc cmdline/apt-helper.cc index 4a24b01d9,c1c8b2178..e3652d1ee --- a/cmdline/apt-helper.cc +++ b/cmdline/apt-helper.cc @@@ -55,14 -52,6 +55,15 @@@ bool DoDownloadFile(CommandLine &CmdL _error->Error(_("Download Failed")); return false; } + if(hash.empty() == false) ++ { + if(hash.VerifyFile(targetfile) == false) + { + _error->Error(_("HashSum Failed")); + Rename(targetfile, targetfile+".failed"); + return false; + } - ++ } return true; } diff --cc test/integration/test-apt-https-no-redirect index 106d4bced,0408c6832..99419d1cc --- a/test/integration/test-apt-https-no-redirect +++ b/test/integration/test-apt-https-no-redirect @@@ -12,27 -12,13 +12,14 @@@ setupaptarchive --no-updat changetohttpswebserver -o 'aptwebserver::redirect::replace::/redirectme/=http://localhost:8080/' +DOWNLOG='download-testfile.log' msgtest 'normal http download works' -downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 >/dev/null 2>/dev/null && msgpass || msgfail +downloadfile 'http://localhost:8080/pool/apt_1.0/changelog' changelog2 > "$DOWNLOG" && msgpass || msgfail msgtest 'normal https download works' -downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog >/dev/null 2>/dev/null && msgpass || msgfail +downloadfile 'https://localhost:4433/pool/apt_1.0/changelog' changelog > "$DOWNLOG" && msgpass || msgfail msgtest 'redirecting https to http does not work' - if ! downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 > "$DOWNLOG"; then - msgpass - else - cat >&2 "$DOWNLOG" - msgfail - fi - - msgtest 'https methods given proper error on redirect attempt' - if grep -q 'Protocol http not supported or disabled in libcurl' "$DOWNLOG"; then - msgpass - else - cat >&2 "$DOWNLOG" - msgfail - fi + downloadfile 'https://localhost:4433/redirectme/pool/apt_1.0/changelog' changelog3 2>&1 | grep "Protocol http not supported or disabled in libcurl" > /dev/null && msgpass || msgfail