HTTP response 204 should be treated similar to 304, that is we must not
authorDaniel Stenberg <daniel@haxx.se>
Mon, 7 Jan 2002 14:57:18 +0000 (14:57 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 7 Jan 2002 14:57:18 +0000 (14:57 +0000)
expect (nor read) any response-body

lib/transfer.c

index 159151f..a47fa1c 100644 (file)
@@ -424,14 +424,22 @@ CURLcode Curl_readwrite(struct connectdata *conn,
                    server keeps it open for us! */
                 conn->bits.close = TRUE;
 
-              if (k->httpcode == 304)
-                /* (quote from RFC2616, section 10.3.5):
-                 *  The 304 response MUST NOT contain a
-                 * message-body, and thus is always
-                 * terminated by the first empty line
-                 * after the header fields.
-                 */
+              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 terminated
+                 * by the first empty line after the header fields.  */
                 conn->size=0;
+              default:
+                /* nothing */
+              }
             }
             else {
               k->header = FALSE;       /* this is not a header line */