From a9c1ca9fc5a80e858b0c85d8f8c838b4464526db Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 3 Apr 2008 21:44:49 +0000 Subject: - 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. --- lib/url.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/url.c b/lib/url.c index 9d782359b..92f7156d3 100644 --- a/lib/url.c +++ b/lib/url.c @@ -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: /* -- cgit v1.2.3