diff --git a/docs/cmdline-opts/etag-compare.md b/docs/cmdline-opts/etag-compare.md index 114806552b..64ab80cd12 100644 --- a/docs/cmdline-opts/etag-compare.md +++ b/docs/cmdline-opts/etag-compare.md @@ -21,7 +21,8 @@ Make a conditional HTTP request for the specific ETag read from the given file by sending a custom If-None-Match header using the stored ETag. For correct results, make sure that the specified file contains only a single -line with the desired ETag. An empty file is parsed as an empty ETag. +line with the desired ETag. A non-existing or empty file is treated as an +empty ETag. Use the option --etag-save to first save the ETag from a response, and then use this option to compare against the saved ETag in a subsequent request. diff --git a/src/tool_operate.c b/src/tool_operate.c index 2309495d82..b3a938c737 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1940,12 +1940,9 @@ static CURLcode single_transfer(struct GlobalConfig *global, /* open file for reading: */ FILE *file = fopen(config->etag_compare_file, FOPEN_READTEXT); - if(!file && !config->etag_save_file) { - errorf(global, - "Failed to open %s", config->etag_compare_file); - result = CURLE_READ_ERROR; - break; - } + if(!file) + warnf(global, "Failed to open %s: %s", config->etag_compare_file, + strerror(errno)); if((PARAM_OK == file2string(&etag_from_file, file)) && etag_from_file) { diff --git a/tests/data/test341 b/tests/data/test341 index 4ebee11fcc..b6e429a222 100644 --- a/tests/data/test341 +++ b/tests/data/test341 @@ -36,7 +36,7 @@ chunky-trailer: header data http -Try to open a non existing file with --etag-compare should return an error +A non existing file with --etag-compare is just a blank http://%HOSTIP:%HTTPPORT/%TESTNUMBER --etag-compare %LOGDIR/etag%TESTNUMBER @@ -46,9 +46,14 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER --etag-compare %LOGDIR/etag%TESTNUMBER # # Verify data after the test has been "shot" - -26 - + +GET /%TESTNUMBER HTTP/1.1 +Host: %HOSTIP:%HTTPPORT +User-Agent: curl/%VERSION +Accept: */* +If-None-Match: "" + +