mirror of
https://github.com/moparisthebest/curl
synced 2024-08-13 17:03:50 -04:00
http: send payload when (proxy) authentication is done
The check that prevents payload from sending in case of authentication doesn't check properly if the authentication is done or not. They're cases where the proxy respond "200 OK" before sending authentication challenge. This change takes care of that. Fixes #2431 Closes #3669
This commit is contained in:
parent
5add3514e6
commit
dd8a19f8a0
@ -2060,7 +2060,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
|||||||
return result;
|
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_GET) &&
|
||||||
(httpreq != HTTPREQ_HEAD)) {
|
(httpreq != HTTPREQ_HEAD)) {
|
||||||
/* Auth is required and we are not authenticated yet. Make a PUT or POST
|
/* Auth is required and we are not authenticated yet. Make a PUT or POST
|
||||||
|
@ -60,7 +60,7 @@ http://test.a.galaxy.far.far.away.1097:%HTTPPORT/1097 --proxy http://%HOSTIP:%HT
|
|||||||
<strip>
|
<strip>
|
||||||
^User-Agent: curl/.*
|
^User-Agent: curl/.*
|
||||||
</strip>
|
</strip>
|
||||||
<protocol>
|
<protocol nonewline="yes">
|
||||||
CONNECT test.a.galaxy.far.far.away.1097:%HTTPPORT HTTP/1.1
|
CONNECT test.a.galaxy.far.far.away.1097:%HTTPPORT HTTP/1.1
|
||||||
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
|
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
|
||||||
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
|
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
|
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
|
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
|
||||||
Accept: */*
|
Accept: */*
|
||||||
Content-Length: 0
|
Content-Length: 11
|
||||||
Content-Type: application/x-www-form-urlencoded
|
Content-Type: application/x-www-form-urlencoded
|
||||||
|
|
||||||
|
dummy=value
|
||||||
</protocol>
|
</protocol>
|
||||||
|
|
||||||
</verify>
|
</verify>
|
||||||
|
Loading…
Reference in New Issue
Block a user