From 710a2e99b569d3f7bbc2771badcb1add87bb7e09 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Thu, 23 Apr 2015 14:01:08 +0200 Subject: 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 --- src/tool_operate.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/tool_operate.c') 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) -- cgit v1.2.3