|
|
9b977c |
From 5a51924c2505c1d5616904aa732fdaedd74d3ffe Mon Sep 17 00:00:00 2001
|
|
|
9b977c |
From: Marc Schlatter <mschlatter@gestour.com>
|
|
|
9b977c |
Date: Mon, 11 Mar 2019 17:15:34 +0100
|
|
|
9b977c |
Subject: [PATCH] http: send payload when (proxy) authentication is done
|
|
|
9b977c |
|
|
|
9b977c |
The check that prevents payload from sending in case of authentication
|
|
|
9b977c |
doesn't check properly if the authentication is done or not.
|
|
|
9b977c |
|
|
|
9b977c |
They're cases where the proxy respond "200 OK" before sending
|
|
|
9b977c |
authentication challenge. This change takes care of that.
|
|
|
9b977c |
|
|
|
9b977c |
Fixes #2431
|
|
|
9b977c |
Closes #3669
|
|
|
9b977c |
|
|
|
9b977c |
Upstream-commit: dd8a19f8a05b59394d1ab33c09497e8db884742a
|
|
|
9b977c |
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
|
|
9b977c |
---
|
|
|
9b977c |
lib/http.c | 3 ++-
|
|
|
9b977c |
tests/data/test1097 | 5 +++--
|
|
|
9b977c |
2 files changed, 5 insertions(+), 3 deletions(-)
|
|
|
9b977c |
|
|
|
9b977c |
diff --git a/lib/http.c b/lib/http.c
|
|
|
9b977c |
index e727ed8..26eb52d 100644
|
|
|
9b977c |
--- a/lib/http.c
|
|
|
9b977c |
+++ b/lib/http.c
|
|
|
9b977c |
@@ -1991,7 +1991,8 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
|
|
|
9b977c |
if(result)
|
|
|
9b977c |
return result;
|
|
|
9b977c |
|
|
|
9b977c |
- if((data->state.authhost.multipass || data->state.authproxy.multipass) &&
|
|
|
9b977c |
+ if(((data->state.authhost.multipass && !data->state.authhost.done)
|
|
|
9b977c |
+ || (data->state.authproxy.multipass && !data->state.authproxy.done)) &&
|
|
|
9b977c |
(httpreq != HTTPREQ_GET) &&
|
|
|
9b977c |
(httpreq != HTTPREQ_HEAD)) {
|
|
|
9b977c |
/* Auth is required and we are not authenticated yet. Make a PUT or POST
|
|
|
9b977c |
diff --git a/tests/data/test1097 b/tests/data/test1097
|
|
|
9b977c |
index 7512a2e..7eb7b5f 100644
|
|
|
9b977c |
--- a/tests/data/test1097
|
|
|
9b977c |
+++ b/tests/data/test1097
|
|
|
9b977c |
@@ -60,7 +60,7 @@ http://test.a.galaxy.far.far.away.1097:%HTTPPORT/1097 --proxy http://%HOSTIP:%HT
|
|
|
9b977c |
<strip>
|
|
|
9b977c |
^User-Agent: curl/.*
|
|
|
9b977c |
</strip>
|
|
|
9b977c |
-<protocol>
|
|
|
9b977c |
+<protocol nonewline="yes">
|
|
|
9b977c |
CONNECT test.a.galaxy.far.far.away.1097:%HTTPPORT HTTP/1.1
|
|
|
9b977c |
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
|
|
|
9b977c |
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
|
|
|
9b977c |
@@ -71,9 +71,10 @@ POST /1097 HTTP/1.1
|
|
|
9b977c |
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
|
|
|
9b977c |
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
|
|
|
9b977c |
Accept: */*
|
|
|
9b977c |
-Content-Length: 0
|
|
|
9b977c |
+Content-Length: 11
|
|
|
9b977c |
Content-Type: application/x-www-form-urlencoded
|
|
|
9b977c |
|
|
|
9b977c |
+dummy=value
|
|
|
9b977c |
</protocol>
|
|
|
9b977c |
|
|
|
9b977c |
</verify>
|
|
|
9b977c |
--
|
|
|
9b977c |
2.26.2
|
|
|
9b977c |
|