summaryrefslogtreecommitdiff
path: root/src/tool_operate.c
diff options
context:
space:
mode:
authorKamil Dudka <kdudka@redhat.com>2015-04-23 14:01:08 +0200
committerKamil Dudka <kdudka@redhat.com>2015-04-23 14:42:07 +0200
commit710a2e99b569d3f7bbc2771badcb1add87bb7e09 (patch)
treeb6e1087799e732a7ee41aeee866ebabe3b5686c1 /src/tool_operate.c
parent79478fdb68ecdb2e36ae634262133670ada44084 (diff)
downloadcurl-710a2e99b569d3f7bbc2771badcb1add87bb7e09.tar.gz
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
Diffstat (limited to 'src/tool_operate.c')
-rw-r--r--src/tool_operate.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c
index 771e42da6..74e4002b1 100644
--- a/src/tool_operate.c
+++ b/src/tool_operate.c
@@ -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)