Loading CHANGES +8 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,14 @@ Changelog Daniel (18 April 2005) - Toshiyuki Maezawa reported that when doing a POST with a read callback, libcurl didn't properly send an Expect: 100-continue header. It does now. - I committed by mig change in the test suite's FTP server that moves out all socket/TCP code to a separate C program named sockfilt. And added 4 new test cases for FTP over IPv6. Daniel (8 April 2005) - Cory Nelson reported a problem with a HTTP server that responded with a 304 response containing an "illegal" Content-Length: header, which was not Loading lib/http.c +34 −34 Original line number Diff line number Diff line Loading @@ -1347,6 +1347,27 @@ CURLcode Curl_http_done(struct connectdata *conn, return CURLE_OK; } /* check and possibly add an Expect: header */ static CURLcode expect100(struct SessionHandle *data, send_buffer *req_buffer) { CURLcode result = CURLE_OK; if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not doing HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ result = add_bufferf(req_buffer, "Expect: 100-continue\r\n"); if(result == CURLE_OK) data->set.expect100header = TRUE; } return result; } /* * Curl_http() gets called from the generic Curl_do() function when a HTTP * request is to be performed. This creates and sends a properly constructed Loading Loading @@ -1928,18 +1949,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) return result; } if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not doing HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ result = add_bufferf(req_buffer, "Expect: 100-continue\r\n"); result = expect100(data, req_buffer); if(result) return result; data->set.expect100header = TRUE; } if(!checkheaders(data, "Content-Type:")) { /* Get Content-Type: line from Curl_formpostheader. Loading Loading @@ -2002,18 +2014,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) return result; } if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ result = add_bufferf(req_buffer, "Expect: 100-continue\r\n"); result = expect100(data, req_buffer); if(result) return result; data->set.expect100header = TRUE; } result = add_buffer(req_buffer, "\r\n", 2); /* end of headers */ if(result) Loading Loading @@ -2121,21 +2124,18 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) /* set the upload size to the progress meter */ Curl_pgrsSetUploadSize(data, http->postsize); if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ add_bufferf(req_buffer, "Expect: 100-continue\r\n"); data->set.expect100header = TRUE; } result = expect100(data, req_buffer); if(result) return result; add_buffer(req_buffer, "\r\n", 2); /* end of headers! */ } } else { result = expect100(data, req_buffer); if(result) return result; add_buffer(req_buffer, "\r\n", 2); /* end of headers! */ if(data->set.postfieldsize) { Loading tests/data/test508 +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ Pragma: no-cache Accept: */* Content-Length: 45 Content-Type: application/x-www-form-urlencoded Expect: 100-continue this is what we post to the silly web server </protocol> Loading tests/data/test510 +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ Pragma: no-cache Accept: */* Transfer-Encoding: chunked Content-Type: application/x-www-form-urlencoded Expect: 100-continue 3 one Loading tests/data/test513 +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ Pragma: no-cache Accept: */* Content-Length: 1 Content-Type: application/x-www-form-urlencoded Expect: 100-continue </protocol> # 42 - aborted by callback Loading Loading
CHANGES +8 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,14 @@ Changelog Daniel (18 April 2005) - Toshiyuki Maezawa reported that when doing a POST with a read callback, libcurl didn't properly send an Expect: 100-continue header. It does now. - I committed by mig change in the test suite's FTP server that moves out all socket/TCP code to a separate C program named sockfilt. And added 4 new test cases for FTP over IPv6. Daniel (8 April 2005) - Cory Nelson reported a problem with a HTTP server that responded with a 304 response containing an "illegal" Content-Length: header, which was not Loading
lib/http.c +34 −34 Original line number Diff line number Diff line Loading @@ -1347,6 +1347,27 @@ CURLcode Curl_http_done(struct connectdata *conn, return CURLE_OK; } /* check and possibly add an Expect: header */ static CURLcode expect100(struct SessionHandle *data, send_buffer *req_buffer) { CURLcode result = CURLE_OK; if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not doing HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ result = add_bufferf(req_buffer, "Expect: 100-continue\r\n"); if(result == CURLE_OK) data->set.expect100header = TRUE; } return result; } /* * Curl_http() gets called from the generic Curl_do() function when a HTTP * request is to be performed. This creates and sends a properly constructed Loading Loading @@ -1928,18 +1949,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) return result; } if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not doing HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ result = add_bufferf(req_buffer, "Expect: 100-continue\r\n"); result = expect100(data, req_buffer); if(result) return result; data->set.expect100header = TRUE; } if(!checkheaders(data, "Content-Type:")) { /* Get Content-Type: line from Curl_formpostheader. Loading Loading @@ -2002,18 +2014,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) return result; } if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ result = add_bufferf(req_buffer, "Expect: 100-continue\r\n"); result = expect100(data, req_buffer); if(result) return result; data->set.expect100header = TRUE; } result = add_buffer(req_buffer, "\r\n", 2); /* end of headers */ if(result) Loading Loading @@ -2121,21 +2124,18 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) /* set the upload size to the progress meter */ Curl_pgrsSetUploadSize(data, http->postsize); if((data->set.httpversion != CURL_HTTP_VERSION_1_0) && !checkheaders(data, "Expect:")) { /* if not HTTP 1.0 or disabled explicitly, we add a Expect: 100-continue to the headers which actually speeds up post operations (as there is one packet coming back from the web server) */ add_bufferf(req_buffer, "Expect: 100-continue\r\n"); data->set.expect100header = TRUE; } result = expect100(data, req_buffer); if(result) return result; add_buffer(req_buffer, "\r\n", 2); /* end of headers! */ } } else { result = expect100(data, req_buffer); if(result) return result; add_buffer(req_buffer, "\r\n", 2); /* end of headers! */ if(data->set.postfieldsize) { Loading
tests/data/test508 +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ Pragma: no-cache Accept: */* Content-Length: 45 Content-Type: application/x-www-form-urlencoded Expect: 100-continue this is what we post to the silly web server </protocol> Loading
tests/data/test510 +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ Pragma: no-cache Accept: */* Transfer-Encoding: chunked Content-Type: application/x-www-form-urlencoded Expect: 100-continue 3 one Loading
tests/data/test513 +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ Pragma: no-cache Accept: */* Content-Length: 1 Content-Type: application/x-www-form-urlencoded Expect: 100-continue </protocol> # 42 - aborted by callback Loading