diff options
author | Brad King <brad.king@kitware.com> | 2016-02-25 16:28:07 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-02-25 16:40:50 (GMT) |
commit | 6c9586f9c7804c4560a43aa6a03e490374174550 (patch) | |
tree | a58deccca02a19cdc8a21aefabea345e69c03b71 /Source/cmFileCommand.cxx | |
parent | f8af218ea148baafcfc3db6ea5ba7389f5ea7206 (diff) | |
download | CMake-6c9586f9c7804c4560a43aa6a03e490374174550.zip CMake-6c9586f9c7804c4560a43aa6a03e490374174550.tar.gz CMake-6c9586f9c7804c4560a43aa6a03e490374174550.tar.bz2 |
file(DOWNLOAD): Fill STATUS variable on hash mismatch (#15987)
Although we fail with an error on a hash mismatch, it is not a fatal
error so the script may continue processing. If the download itself had
no error then report in the STATUS variable that the operation was not
successful due to the hash mismatch.
Suggested-by: Tobias Hieta <tobias@hieta.se>
Diffstat (limited to 'Source/cmFileCommand.cxx')
-rw-r--r-- | Source/cmFileCommand.cxx | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index b3557f9..1fa27eb 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -3300,6 +3300,15 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args) << " status: [" << (int)res << ";\"" << ::curl_easy_strerror(res) << "\"]" << std::endl ; + + if(!statusVar.empty() && res == 0) + { + std::string status = "1;HASH mismatch: " + "expected: " + expectedHash + + " actual: " + actualHash; + this->Makefile->AddDefinition(statusVar, status.c_str()); + } + this->SetError(oss.str()); return false; } |