aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKwon-Young Choi <kwon-young.choi@hotmail.fr>2020-04-04 17:27:18 +0200
committerDaniel Stenberg <daniel@haxx.se>2020-04-05 11:13:49 +0200
commit54ecc11cc4c4cf4a6ed958fd2906f3a791d1c8d2 (patch)
treed53c220ef41aa1d1a4d7debcf70fbae216ab9744 /lib
parenta448a4ce2615373fc63818afede79550f2ca6a14 (diff)
CURLINFO_CONDITION_UNMET: return true for 304 http status code
In libcurl, CURLINFO_CONDITION_UNMET is used to avoid writing to the output file if the server did not transfered a file based on time condition. In the same manner, getting a 304 HTTP response back from the server, for example after passing a custom If-Match-* header, also fulfill this condition. Fixes #5181 Closes #5183
Diffstat (limited to 'lib')
-rw-r--r--lib/getinfo.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/getinfo.c b/lib/getinfo.c
index 18274e964..84d9fc1c6 100644
--- a/lib/getinfo.c
+++ b/lib/getinfo.c
@@ -239,8 +239,11 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
*param_longp = data->info.conn_local_port;
break;
case CURLINFO_CONDITION_UNMET:
- /* return if the condition prevented the document to get transferred */
- *param_longp = data->info.timecond ? 1L : 0L;
+ if(data->info.httpcode == 304)
+ *param_longp = 1L;
+ else
+ /* return if the condition prevented the document to get transferred */
+ *param_longp = data->info.timecond ? 1L : 0L;
break;
case CURLINFO_RTSP_CLIENT_CSEQ:
*param_longp = data->state.rtsp_next_client_CSeq;