Make file(DOWNLOAD) fail on http error
If a http server responds with a result code greater than 400 then the data returned from the download probably do not match that expected. Teach file(DOWNLOAD) to fail with an error in this case instead of silently pretending that the download worked. The file(UPLOAD) command already does this.
This commit is contained in:
parent
cfc6e01851
commit
09817e91f9
|
@ -2753,6 +2753,10 @@ cmFileCommand::HandleDownloadCommand(std::vector<std::string> const& args)
|
||||||
::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
|
::CURLcode res = ::curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
|
||||||
check_curl_result(res, "DOWNLOAD cannot set url: ");
|
check_curl_result(res, "DOWNLOAD cannot set url: ");
|
||||||
|
|
||||||
|
// enable HTTP ERROR parsing
|
||||||
|
res = ::curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1);
|
||||||
|
check_curl_result(res, "DOWNLOAD cannot set http failure option: ");
|
||||||
|
|
||||||
res = ::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,
|
res = ::curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION,
|
||||||
cmWriteToFileCallback);
|
cmWriteToFileCallback);
|
||||||
check_curl_result(res, "DOWNLOAD cannot set write function: ");
|
check_curl_result(res, "DOWNLOAD cannot set write function: ");
|
||||||
|
|
Loading…
Reference in New Issue