1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

- Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to

GET simply because previously when you set CURLOPT_NOBODY to TRUE first and
  then FALSE you'd end up in a broken state where a HTTP request would do a
  HEAD by still act a lot like for a GET and hang waiting for the content etc.
This commit is contained in:
Daniel Stenberg 2008-04-03 21:44:49 +00:00
parent d051dd8087
commit a9c1ca9fc5
4 changed files with 14 additions and 7 deletions

View File

@ -7,6 +7,11 @@
Changelog
Daniel Stenberg (3 Apr 2008)
- Setting CURLOPT_NOBODY to FALSE will now switch the HTTP request method to
GET simply because previously when you set CURLOPT_NOBODY to TRUE first and
then FALSE you'd end up in a broken state where a HTTP request would do a
HEAD by still act a lot like for a GET and hang waiting for the content etc.
- Scott Barrett added support for CURLOPT_NOBODY over SFTP
Daniel Fandrich (3 Apr 2008)

View File

@ -15,7 +15,8 @@ This release includes the following changes:
This release includes the following bugfixes:
o
o CURLOPT_NOBODY first set to TRUE and then FALSE for HTTP no longer causes
the confusion that could lead to a hung transfer
This release includes the following known bugs:

View File

@ -7,7 +7,4 @@ To be addressed before 7.18.2 (planned release: June 2008)
130 - Vincent Le Normand's SFTP patch for touch (lacking feedback)
133 - Setting CURLOPT_NOBODY to "false" causes cURL to wait for content if a
content-length header is read
134 -

View File

@ -858,9 +858,13 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
* Do not include the body part in the output data stream.
*/
data->set.opt_no_body = (bool)(0 != va_arg(param, long));
if(data->set.opt_no_body)
/* in HTTP lingo, this means using the HEAD request */
data->set.httpreq = HTTPREQ_HEAD;
/* in HTTP lingo, no body means using the HEAD request and if unset there
really is no perfect method that is the "opposite" of HEAD but in
reality most people probably think GET then. The important thing is
that we can't let it remain HEAD if the opt_no_body is set FALSE since
then we'll behave wrong when getting HTTP. */
data->set.httpreq = data->set.opt_no_body?HTTPREQ_HEAD:HTTPREQ_GET;
break;
case CURLOPT_FAILONERROR:
/*