diff --git a/lib/http.c b/lib/http.c index 3618f8728b..3f41a451b9 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2060,7 +2060,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done) return result; } - if((data->state.authhost.multipass || data->state.authproxy.multipass) && + if(((data->state.authhost.multipass && !data->state.authhost.done) + || (data->state.authproxy.multipass && !data->state.authproxy.done)) && (httpreq != HTTPREQ_GET) && (httpreq != HTTPREQ_HEAD)) { /* Auth is required and we are not authenticated yet. Make a PUT or POST diff --git a/tests/data/test1097 b/tests/data/test1097 index 7512a2e7dd..7eb7b5f3d2 100644 --- a/tests/data/test1097 +++ b/tests/data/test1097 @@ -60,7 +60,7 @@ http://test.a.galaxy.far.far.away.1097:%HTTPPORT/1097 --proxy http://%HOSTIP:%HT ^User-Agent: curl/.* - + CONNECT test.a.galaxy.far.far.away.1097:%HTTPPORT HTTP/1.1 Host: test.a.galaxy.far.far.away.1097:%HTTPPORT Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= @@ -71,9 +71,10 @@ POST /1097 HTTP/1.1 User-Agent: curl/7.19.5-CVS (i686-pc-linux-gnu) libcurl/7.19.5-CVS OpenSSL/0.9.8g zlib/1.2.3.3 c-ares/1.6.1-CVS libidn/1.12 libssh2/1.0.1_CVS Host: test.a.galaxy.far.far.away.1097:%HTTPPORT Accept: */* -Content-Length: 0 +Content-Length: 11 Content-Type: application/x-www-form-urlencoded +dummy=value