diff --git a/CHANGES b/CHANGES index 719230dba..d26719bcc 100644 --- a/CHANGES +++ b/CHANGES @@ -7,6 +7,13 @@ Changelog +Daniel (4 April 2005) +- Hardeep Singh reported a problem doing HTTP POST with Digest. (It was + actually also affecting NTLM and Negotiate.) It turned out that if the + server responded with 100 Continue before the initial 401 response, libcurl + didn't take care of the response properly. Test case 245 and 246 added to + verify this. + Daniel (30 March 2005) - Andres Garcia modified the configure script to check for libgdi32 before libcrypto, to make the SSL check work fine on msys/mingw. diff --git a/lib/http.c b/lib/http.c index 308f9efc3..c689b6596 100644 --- a/lib/http.c +++ b/lib/http.c @@ -304,6 +304,10 @@ CURLcode Curl_http_auth_act(struct connectdata *conn) bool pickproxy = FALSE; CURLcode code = CURLE_OK; + if(100 == conn->keep.httpcode) + /* this is a transient response code, ignore */ + return CURLE_OK; + if(data->state.authproblem) return data->set.http_fail_on_error?CURLE_HTTP_RETURNED_ERROR:CURLE_OK; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 16edae910..46a8465f1 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -33,7 +33,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \ test241 test242 test519 test214 test215 test216 test217 test218 \ test199 test225 test226 test227 test230 test231 test232 test228 \ test229 test233 test234 test235 test236 test520 test237 test238 \ - test239 test243 test245 + test239 test243 test245 test246 # The following tests have been removed from the dist since they no longer # work. We need to fix the test suite's FTPS server first, then bring them diff --git a/tests/data/test246 b/tests/data/test246 new file mode 100644 index 000000000..cfd12b0e7 --- /dev/null +++ b/tests/data/test246 @@ -0,0 +1,86 @@ +# Server-side + + +HTTP/1.1 100 Continue +Server: Microsoft-IIS/5.0 +Date: Sun, 03 Apr 2005 14:57:45 GMT +X-Powered-By: ASP.NET + +HTTP/1.1 401 authentication please swsbounce +Server: Microsoft-IIS/6.0 +WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" +Content-Type: text/html; charset=iso-8859-1 +Content-Length: 0 + + + +HTTP/1.1 200 A OK +Server: Microsoft-IIS/6.0 +Content-Type: text/html; charset=iso-8859-1 +Content-Length: 3 + +ok + + + +HTTP/1.1 100 Continue +Server: Microsoft-IIS/5.0 +Date: Sun, 03 Apr 2005 14:57:45 GMT +X-Powered-By: ASP.NET + +HTTP/1.1 401 authentication please swsbounce +Server: Microsoft-IIS/6.0 +WWW-Authenticate: Digest realm="testrealm", nonce="1053604144" +Content-Type: text/html; charset=iso-8859-1 +Content-Length: 0 + +HTTP/1.1 200 A OK +Server: Microsoft-IIS/6.0 +Content-Type: text/html; charset=iso-8859-1 +Content-Length: 3 + +ok + + + + +# Client-side + +# + +http + + +HTTP POST --digest with server doing a 100 before 401 response + + +http://%HOSTIP:%HTTPPORT/246 -u auser:apasswd --digest -d "junkelijunk" + + + +# Verify data after the test has been "shot" + + +^User-Agent:.* + + +POST /246 HTTP/1.1 +User-Agent: curl/7.12.1-CVS (i686-pc-linux-gnu) libcurl/7.12.1-CVS OpenSSL/0.9.6b ipv6 zlib/1.1.4 GSS libidn/0.4.6 +Host: 127.0.0.1:%HTTPPORT +Pragma: no-cache +Accept: */* +Content-Length: 0 +Content-Type: application/x-www-form-urlencoded + +POST /246 HTTP/1.1 +Authorization: Digest username="auser", realm="testrealm", nonce="1053604144", uri="/246", response="761e6fc9a760c39d587092e8d840e740" +User-Agent: curl/7.13.2-CVS (i686-pc-linux-gnu) libcurl/7.13.2-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13 +Host: 127.0.0.1:8990 +Pragma: no-cache +Accept: */* +Content-Length: 11 +Content-Type: application/x-www-form-urlencoded + +junkelijunk + +