diff --git a/CHANGES b/CHANGES index adcd4fce363468d48bcc1670bc77b9675bbd5729..671d3b306598a0956002e94577d94dc772994137 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,12 @@ Changelog +Daniel Stenberg (11 May 2009) +- I fixed the problem with doing NTLM, POST and then following a 302 redirect, + as reported by Ebenezer Ikonne (on curl-users) and Laurent Rabret (on + curl-library). The transfer was mistakenly marked to get more data to send + but since it didn't actually have that, it just hung there... + Daniel Stenberg (10 May 2009) - Andre Guibert de Bruet correctly pointed out an over-alloc with one wasted byte in the digest code. diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 06292b1fb79234f1e17d69dc9171a38fa28a6ec3..adb37e04b712ecd37344aea135a568d7cbced1e2 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -44,6 +44,7 @@ This release includes the following bugfixes: o fixed roff mistakes in man pages o use SOCKS proxy with the multi interface o fixed the Curl_getoff_all_pipelines SIGSEGV + o POST, NTLM and following a redirect hang This release includes the following known bugs: @@ -57,6 +58,6 @@ advice from friends like these: Kamil Dudka, Jim Freeman, Daniel Johnson, Toshio Kuratomi, Martin Storsjo, Pramod Sharma, Gisle Vanem, Lenaic Lefever, Rainer Koenig, Sven Wegener, Tim Chen, Constantine Sapuntzakis, David McCreedy, Michael Smith, - Colin Watson + Colin Watson, Ebenezer Ikonne, Laurent Rabret Thanks! (and sorry if I forgot to mention someone) diff --git a/TODO-RELEASE b/TODO-RELEASE index 4555f277fcf90303fcc621b0c44721a791834bf5..d03401419950b378492066437dd7b8c81dc9eedb 100644 --- a/TODO-RELEASE +++ b/TODO-RELEASE @@ -12,8 +12,6 @@ To be addressed in 7.19.5 (planned release: May 2009) 236 - timeout in milliseconds doesn't seem to work -237 - Redirection failing with NTLM authentication - 239 - To be addressed in 7.19.6 (planned release: July 2009) diff --git a/lib/http.c b/lib/http.c index a31e0f879bbb81bbdf21a80a4d2bdd1eaf3e195e..9c020396c18aa6c5008da878cd4fb0c206acf859 100644 --- a/lib/http.c +++ b/lib/http.c @@ -369,6 +369,8 @@ CURLcode Curl_http_perhapsrewind(struct connectdata *conn) case HTTPREQ_POST: if(data->set.postfieldsize != -1) expectsend = data->set.postfieldsize; + else if(data->set.postfields) + expectsend = (curl_off_t)strlen(data->set.postfields); break; case HTTPREQ_PUT: if(data->set.infilesize != -1) diff --git a/tests/data/DISABLED b/tests/data/DISABLED index 251b45b1a4db52a13ecda6c20e3eca12d2535d78..0e3c19ba272b1aa7afc7cf6a857e49d931174276 100644 --- a/tests/data/DISABLED +++ b/tests/data/DISABLED @@ -4,4 +4,4 @@ # per line. # Lines starting with '#' letters are treated as comments. 563 -1100 + diff --git a/tests/data/test1100 b/tests/data/test1100 index 7644aa2f4bac4286a573823ad5501796833471e6..40d9f641ec101c8f20b2fc51bb0ae1568653ed6d 100644 --- a/tests/data/test1100 +++ b/tests/data/test1100 @@ -10,7 +10,7 @@ HTTP NTLM auth <reply> <data> -HTTP/1.1 200 Thanks for this, but we want to redir you! swsclose +HTTP/1.1 200 Thanks for this! swsclose Content-Length: 25 This is the final page ! @@ -48,9 +48,13 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab HTTP/1.1 302 Thanks for this, but we want to redir you! Server: Microsoft-IIS/5.0 Content-Type: text/html; charset=iso-8859-1 +Location: /1100 Content-Length: 34 -This is not the real page either! +HTTP/1.1 200 Thanks for this! swsclose +Content-Length: 25 + +This is the final page ! </datacheck> </reply> @@ -81,7 +85,7 @@ http://%HOSTIP:%HTTPPORT/1100 -u testuser:testpass --ntlm -L -d "stuff to send a <strippart> s/^(Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAA).*/$1/ </strippart> -<protocol nonewline="yes"> +<protocol> POST /1100 HTTP/1.1 Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= User-Agent: curl/7.10.6-pre1 (i686-pc-linux-gnu) libcurl/7.10.6-pre1 OpenSSL/0.9.7a ipv6 zlib/1.1.3 @@ -98,7 +102,11 @@ Accept: */* Content-Length: 18 Content-Type: application/x-www-form-urlencoded -stuff to send away +stuff to send awayGET /1100 HTTP/1.1 +User-Agent: curl/7.19.5-CVS (i686-pc-linux-gnu) libcurl/7.19.5-CVS GnuTLS/2.6.6 zlib/1.2.3.3 c-ares/1.6.1-CVS libidn/1.14 libssh2/1.1 +Host: %HOSTIP:%HTTPPORT +Accept: */* + </protocol> </verify> </testcase>