- 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

@@ -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:
/*