aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES7
-rw-r--r--lib/http.c4
-rw-r--r--tests/data/Makefile.am2
-rw-r--r--tests/data/test24686
4 files changed, 98 insertions, 1 deletions
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
+<reply>
+<data>
+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
+
+</data>
+<data1000>
+HTTP/1.1 200 A OK
+Server: Microsoft-IIS/6.0
+Content-Type: text/html; charset=iso-8859-1
+Content-Length: 3
+
+ok
+</data1000>
+
+<datacheck>
+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
+</datacheck>
+
+</reply>
+
+# Client-side
+<client>
+#
+<server>
+http
+</server>
+ <name>
+HTTP POST --digest with server doing a 100 before 401 response
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/246 -u auser:apasswd --digest -d "junkelijunk"
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol nonewline=yes>
+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
+</protocol>
+</verify>