curl -z: do not write empty file on unmet condition

This commit fixes a regression introduced in curl-7_41_0-186-g261a0fe.
It also introduces a regression test 1424 based on tests 78 and 1423.

Reported-by: Viktor Szakats
Bug: https://github.com/bagder/curl/issues/237
This commit is contained in:
Kamil Dudka 2015-04-23 14:01:08 +02:00
parent 79478fdb68
commit 710a2e99b5
3 changed files with 88 additions and 7 deletions

View file

@ -1388,12 +1388,17 @@ static CURLcode operate_do(struct GlobalConfig *global,
#endif
result = curl_easy_perform(curl);
if(!result && !outs.stream && !outs.bytes
/* we have received no data despite the transfer was successful
==> force cration of an empty output file (if an output file
was specified) */
&& !tool_create_output_file(&outs))
result = CURLE_WRITE_ERROR;
if(!result && !outs.stream && !outs.bytes) {
/* we have received no data despite the transfer was successful
==> force cration of an empty output file (if an output file
was specified) */
long cond_unmet = 0L;
/* do not create (or even overwrite) the file in case we get no
data because of unmet condition */
curl_easy_getinfo(curl, CURLINFO_CONDITION_UNMET, &cond_unmet);
if(!cond_unmet && !tool_create_output_file(&outs))
result = CURLE_WRITE_ERROR;
}
if(outs.is_cd_filename && outs.stream && !global->mute &&
outs.filename)