Blame SOURCES/0028-curl-7.61.1-http-auth-payload.patch

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