]> granicus.if.org Git - curl/commitdiff
http: don't set CURLINFO_CONDITION_UNMET for http status code 204
authorMichael Kaufmann <mail@michael-kaufmann.ch>
Mon, 10 Dec 2018 16:30:31 +0000 (17:30 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 11 Dec 2018 12:22:42 +0000 (13:22 +0100)
The http status code 204 (No Content) should not change the "condition
unmet" flag. Only the http status code 304 (Not Modified) should do
this.

Closes #359

lib/http.c

index 7be6f8b92a8eb8342b390bb5c0a34f0466aa0fea..7d50750a4bc39d62d910ec8ecba0b9e3ebdb6e5c 100644 (file)
@@ -3657,13 +3657,6 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
         }
 
         switch(k->httpcode) {
-        case 204:
-          /* (quote from RFC2616, section 10.2.5): The server has
-           * fulfilled the request but does not need to return an
-           * entity-body ... The 204 response MUST NOT include a
-           * message-body, and thus is always terminated by the first
-           * empty line after the header fields. */
-          /* FALLTHROUGH */
         case 304:
           /* (quote from RFC2616, section 10.3.5): The 304 response
            * MUST NOT contain a message-body, and thus is always
@@ -3671,6 +3664,13 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data,
            * fields.  */
           if(data->set.timecondition)
             data->info.timecond = TRUE;
+          /* FALLTHROUGH */
+        case 204:
+          /* (quote from RFC2616, section 10.2.5): The server has
+           * fulfilled the request but does not need to return an
+           * entity-body ... The 204 response MUST NOT include a
+           * message-body, and thus is always terminated by the first
+           * empty line after the header fields. */
           k->size = 0;
           k->maxdownload = 0;
           k->ignorecl = TRUE; /* ignore Content-Length headers */