From 0015e06151169dd6fe9f2b4eaa324af0a8f99adb Mon Sep 17 00:00:00 2001 From: Fabian Keil Date: Tue, 19 Jan 2021 11:13:41 +0100 Subject: [PATCH] http: get CURLOPT_REQUEST_TARGET working with a HTTP proxy Added test 1613 to verify. Closes #6490 --- lib/http.c | 5 ++-- tests/data/Makefile.inc | 2 +- tests/data/test1613 | 53 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 tests/data/test1613 diff --git a/lib/http.c b/lib/http.c index 83484d3af2..b0bca64c41 100644 --- a/lib/http.c +++ b/lib/http.c @@ -2177,8 +2177,9 @@ CURLcode Curl_http_target(struct Curl_easy *data, curl_url_cleanup(h); - /* url */ - result = Curl_dyn_add(r, url); + /* target or url */ + result = Curl_dyn_add(r, data->set.str[STRING_TARGET]? + data->set.str[STRING_TARGET]:url); free(url); if(result) return (result); diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 08ac64882f..f92c50beb6 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -192,7 +192,7 @@ test1566 test1567 test1568 \ test1590 test1591 test1592 test1593 test1594 test1595 test1596 \ \ test1600 test1601 test1602 test1603 test1604 test1605 test1606 test1607 \ -test1608 test1609 test1610 test1611 test1612 \ +test1608 test1609 test1610 test1611 test1612 test1613 \ \ test1620 test1621 \ \ diff --git a/tests/data/test1613 b/tests/data/test1613 new file mode 100644 index 0000000000..ae6cab070c --- /dev/null +++ b/tests/data/test1613 @@ -0,0 +1,53 @@ + + + +HTTP +HTTP proxy +--request-target + + + +# +# Server-side + + +HTTP/1.1 200 OK +Date: Sat, 29 Feb 2020 16:10:44 GMT +Server: Blafasel/1.1 +Last-Modified: Sat, 29 Feb 2020 16:10:44 GMT +Content-Length: 0 +Connection: close +Content-Type: text/html + + + + +# +# Client-side + + +http + + +Send "OPTIONS *" with --request-target to a proxy + + +proxy + + +--request-target '*' -X OPTIONS --proxy http://%HOSTIP:%HTTPPORT/ -H "Testno: 1613" http://www.example.org/ + + + + + +OPTIONS * HTTP/1.1 +Host: www.example.org +User-Agent: curl/%VERSION +Accept: */* +Proxy-Connection: Keep-Alive +Testno: 1613 + + + +