summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Fandrich <dan@coneharvesters.com>2008-08-28 06:28:07 +0000
committerDan Fandrich <dan@coneharvesters.com>2008-08-28 06:28:07 +0000
commit8ce78ca488f589d9b1987e7713f28f9da15cba0f (patch)
tree3b61c201ab53f9581a30386d454a7ba37ef7b9a3
parentfc9610919cd002aef954166295538bf3d43c28c9 (diff)
downloadcurl-8ce78ca488f589d9b1987e7713f28f9da15cba0f.tar.gz
Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set
the HTTP method to GET (or HEAD) when given a value of 0.
-rw-r--r--CHANGES7
-rw-r--r--RELEASE-NOTES1
-rw-r--r--lib/url.c3
-rw-r--r--tests/data/DISABLED1
-rw-r--r--tests/data/test10656
5 files changed, 14 insertions, 4 deletions
diff --git a/CHANGES b/CHANGES
index ce0abeba0..21f345bd2 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,13 @@
Changelog
+Daniel Fandrich (27 Aug 2008)
+- Fixed test case 1065 by changing the handling of CURLOPT_UPLOAD to set
+ the HTTP method to GET (or HEAD) when given a value of 0.
+
+- Added test cases 1068 and 1069 to test a simple HTTP PUT from stdin. Test
+ case 1069 fails in a similar manner to test 1065 so is added to DISABLED.
+
Yang Tse (27 Aug 2008)
- Fix generation of MS VC6 .dsp file to make it support compilation of either
dynamic (DLL) or static (LIB) libcurl libraries in debug and release modes.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index d082085c3..cfdb11979 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -58,6 +58,7 @@ This release includes the following bugfixes:
o improved curl_m*printf() integral data type size and signedness handling
o error when --dump-header - used with more than one URL
o proxy closing connect during CONNECT with auth with the multi interface
+ o CURLOPT_UPLOAD sets HTTP method back to GET or HEAD when passed in a 0
This release includes the following known bugs:
diff --git a/lib/url.c b/lib/url.c
index 41222f0ec..a70b471b2 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -888,6 +888,9 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
if(data->set.upload)
/* If this is HTTP, PUT is what's needed to "upload" */
data->set.httpreq = HTTPREQ_PUT;
+ else
+ /* In HTTP, the opposite of upload is either GET or a HEAD */
+ data->set.httpreq = data->set.opt_no_body?HTTPREQ_HEAD:HTTPREQ_GET;
break;
case CURLOPT_FILETIME:
/*
diff --git a/tests/data/DISABLED b/tests/data/DISABLED
index 9e61456de..87d335550 100644
--- a/tests/data/DISABLED
+++ b/tests/data/DISABLED
@@ -3,5 +3,4 @@
# test cases are run by runtests.pl. Just add the plain test case numbers, one
# per line.
# Lines starting with '#' letters are treated as comments.
-1065
1069
diff --git a/tests/data/test1065 b/tests/data/test1065
index 700d8110b..87f4654ca 100644
--- a/tests/data/test1065
+++ b/tests/data/test1065
@@ -3,6 +3,7 @@
<keywords>
HTTP
HTTP PUT
+HTTP GET
</keywords>
</info>
@@ -35,7 +36,7 @@ http
HTTP PUT with one file but two URLs
</name>
<command>
--H "Expect:" -T log/1065 http://%HOSTIP:%HTTPPORT/1065.upload1 http://%HOSTIP:%HTTPPORT/10650002.upload2
+-H "Expect:" -T log/1065 http://%HOSTIP:%HTTPPORT/1065.upload1 http://%HOSTIP:%HTTPPORT/10650002.url2
</command>
<file name="log/1065">
test
@@ -54,10 +55,9 @@ Accept: */*
Content-Length: 5
test
-PUT /10650002.upload2 HTTP/1.1
+GET /10650002.url2 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
-Content-Length: 0
</protocol>
<stdout>