- Craig A West brought us: libcurl now defaults to do CONNECT with HTTP

version 1.1 instead of 1.0 like before. This change also introduces the new
  proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to
  switch (back) to CONNECT 1.0 requests. The curl tool also got a --proxy1.0
  option that works exactly like --proxy but sets CURLPROXY_HTTP_1_0.

  I updated all test cases cases that use CONNECT and I tried to do some using
  --proxy1.0 and some updated to do CONNECT 1.1 to get both versions run.
This commit is contained in:
Daniel Stenberg 2009-02-02 16:19:23 +00:00
parent dcf92bffd2
commit bdd4294e79
28 changed files with 86 additions and 44 deletions

10
CHANGES
View File

@ -6,6 +6,16 @@
Changelog Changelog
Daniel Stenberg (2 Feb 2009)
- Craig A West brought us: libcurl now defaults to do CONNECT with HTTP
version 1.1 instead of 1.0 like before. This change also introduces the new
proxy type for libcurl called 'CURLPROXY_HTTP_1_0' that then allows apps to
switch (back) to CONNECT 1.0 requests. The curl tool also got a --proxy1.0
option that works exactly like --proxy but sets CURLPROXY_HTTP_1_0.
I updated all test cases cases that use CONNECT and I tried to do some using
--proxy1.0 and some updated to do CONNECT 1.1 to get both versions run.
Daniel Stenberg (31 Jan 2009) Daniel Stenberg (31 Jan 2009)
- When building with c-ares 1.6.1 (not yet released) or later and IPv6 support - When building with c-ares 1.6.1 (not yet released) or later and IPv6 support
enabled, we can now take advantage of its brand new AF_UNSPEC support in enabled, we can now take advantage of its brand new AF_UNSPEC support in

View File

@ -1,7 +1,7 @@
Curl and libcurl 7.19.4 Curl and libcurl 7.19.4
Public curl releases: 110 Public curl releases: 110
Command line options: 131 Command line options: 132
curl_easy_setopt() options: 161 curl_easy_setopt() options: 161
Public functions in libcurl: 58 Public functions in libcurl: 58
Known libcurl bindings: 37 Known libcurl bindings: 37
@ -17,6 +17,7 @@ This release includes the following changes:
the corresponding curl options --socks5-gssapi-service and the corresponding curl options --socks5-gssapi-service and
--socks5-gssapi-nec --socks5-gssapi-nec
o Improved IPv6 support when built with with c-ares >= 1.6.1 o Improved IPv6 support when built with with c-ares >= 1.6.1
o Added CURLPROXY_HTTP_1_0 and --proxy1.0
This release includes the following bugfixes: This release includes the following bugfixes:

View File

@ -141,6 +141,9 @@ PROXY
curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/ curl --noproxy localhost,get.this -x my-proxy:888 http://www.get.this/
If the proxy is specified with --proxy1.0 instead of --proxy or -x, then
curl will use HTTP/1.0 instead of HTTP/1.1 for any CONNECT attempts.
curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5. curl also supports SOCKS4 and SOCKS5 proxies with --socks4 and --socks5.
See also the environment variables Curl support that offer further proxy See also the environment variables Curl support that offer further proxy

View File

@ -903,6 +903,13 @@ with a remote host. (Added in 7.17.1)
.IP "--proxy-ntlm" .IP "--proxy-ntlm"
Tells curl to use HTTP NTLM authentication when communicating with the given Tells curl to use HTTP NTLM authentication when communicating with the given
proxy. Use \fI--ntlm\fP for enabling NTLM with a remote host. proxy. Use \fI--ntlm\fP for enabling NTLM with a remote host.
.IP "--proxy1.0 <proxyhost[:port]>"
Use the specified HTTP 1.0 proxy. If the port number is not specified, it is
assumed at port 1080.
The only difference between this and the HTTP proxy option (\fI-x/--proxy\fP),
is that attempts to use CONNECT through the proxy will specify an HTTP 1.0
protocol instead of the default HTTP 1.1.
.IP "-p/--proxytunnel" .IP "-p/--proxytunnel"
When an HTTP proxy is used (\fI-x/--proxy\fP), this option will cause non-HTTP When an HTTP proxy is used (\fI-x/--proxy\fP), this option will cause non-HTTP
protocols to attempt to tunnel through the proxy instead of merely using it to protocols to attempt to tunnel through the proxy instead of merely using it to

View File

@ -470,10 +470,10 @@ Pass a long with this option to set the proxy port to connect to unless it is
specified in the proxy string \fICURLOPT_PROXY\fP. specified in the proxy string \fICURLOPT_PROXY\fP.
.IP CURLOPT_PROXYTYPE .IP CURLOPT_PROXYTYPE
Pass a long with this option to set type of the proxy. Available options for Pass a long with this option to set type of the proxy. Available options for
this are \fICURLPROXY_HTTP\fP, \fICURLPROXY_SOCKS4\fP (added in 7.15.2), this are \fICURLPROXY_HTTP\fP, \fICURLPROXY_HTTP_1_0\fP (added in 7.19.4),
\fICURLPROXY_SOCKS5\fP, \fICURLPROXY_SOCKS4A\fP (added in 7.18.0) and \fICURLPROXY_SOCKS4\fP (added in 7.15.2), \fICURLPROXY_SOCKS5\fP,
\fICURLPROXY_SOCKS5_HOSTNAME\fP (added in 7.18.0). The HTTP type is \fICURLPROXY_SOCKS4A\fP (added in 7.18.0) and \fICURLPROXY_SOCKS5_HOSTNAME\fP
default. (Added in 7.10) (added in 7.18.0). The HTTP type is default. (Added in 7.10)
.IP CURLOPT_NOPROXY .IP CURLOPT_NOPROXY
Pass a pointer to a zero terminated string. The should be a comma- separated Pass a pointer to a zero terminated string. The should be a comma- separated
list of hosts which do not use a proxy, if one is specified. The only list of hosts which do not use a proxy, if one is specified. The only

View File

@ -459,7 +459,10 @@ typedef CURLcode (*curl_ssl_ctx_callback)(CURL *curl, /* easy handle */
void *userptr); void *userptr);
typedef enum { typedef enum {
CURLPROXY_HTTP = 0, /* added in 7.10 */ CURLPROXY_HTTP = 0, /* added in 7.10, new in 7.19.4 default is to use
CONNECT HTTP/1.1 */
CURLPROXY_HTTP_1_0 = 1, /* added in 7.19.4, force to use CONNECT
HTTP/1.0 */
CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already CURLPROXY_SOCKS4 = 4, /* support added in 7.15.2, enum existed already
in 7.10 */ in 7.10 */
CURLPROXY_SOCKS5 = 5, /* added in 7.10 */ CURLPROXY_SOCKS5 = 5, /* added in 7.10 */

View File

@ -1894,6 +1894,7 @@ static CURLcode ftp_state_pasv_resp(struct connectdata *conn,
break; break;
#endif /* CURL_DISABLE_PROXY */ #endif /* CURL_DISABLE_PROXY */
case CURLPROXY_HTTP: case CURLPROXY_HTTP:
case CURLPROXY_HTTP_1_0:
/* do nothing here. handled later. */ /* do nothing here. handled later. */
break; break;
default: default:

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2008, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -1343,6 +1343,8 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
char *host=(char *)""; char *host=(char *)"";
const char *proxyconn=""; const char *proxyconn="";
const char *useragent=""; const char *useragent="";
const char *http = (conn->proxytype == CURLPROXY_HTTP_1_0) ?
"1.0" : "1.1";
if(!checkheaders(data, "Host:")) { if(!checkheaders(data, "Host:")) {
host = aprintf("Host: %s\r\n", host_port); host = aprintf("Host: %s\r\n", host_port);
@ -1363,12 +1365,12 @@ CURLcode Curl_proxyCONNECT(struct connectdata *conn,
/* BLOCKING */ /* BLOCKING */
result = result =
add_bufferf(req_buffer, add_bufferf(req_buffer,
"CONNECT %s:%d HTTP/1.0\r\n" "CONNECT %s:%d HTTP/%s\r\n"
"%s" /* Host: */ "%s" /* Host: */
"%s" /* Proxy-Authorization */ "%s" /* Proxy-Authorization */
"%s" /* User-Agent */ "%s" /* User-Agent */
"%s", /* Proxy-Connection */ "%s", /* Proxy-Connection */
hostname, remote_port, hostname, remote_port, http,
host, host,
conn->allocptr.proxyuserpwd? conn->allocptr.proxyuserpwd?
conn->allocptr.proxyuserpwd:"", conn->allocptr.proxyuserpwd:"",

View File

@ -1453,7 +1453,7 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option,
case CURLOPT_PROXYTYPE: case CURLOPT_PROXYTYPE:
/* /*
* Set proxy type. HTTP/SOCKS4/SOCKS4a/SOCKS5/SOCKS5_HOSTNAME * Set proxy type. HTTP/HTTP_1_0/SOCKS4/SOCKS4a/SOCKS5/SOCKS5_HOSTNAME
*/ */
data->set.proxytype = (curl_proxytype)va_arg(param, long); data->set.proxytype = (curl_proxytype)va_arg(param, long);
break; break;
@ -2857,6 +2857,7 @@ static CURLcode ConnectPlease(struct SessionHandle *data,
break; break;
#endif /* CURL_DISABLE_PROXY */ #endif /* CURL_DISABLE_PROXY */
case CURLPROXY_HTTP: case CURLPROXY_HTTP:
case CURLPROXY_HTTP_1_0:
/* do nothing here. handled later. */ /* do nothing here. handled later. */
break; break;
default: default:
@ -4214,9 +4215,11 @@ static CURLcode create_conn(struct SessionHandle *data,
conn->bits.proxy = (bool)(data->set.str[STRING_PROXY] && conn->bits.proxy = (bool)(data->set.str[STRING_PROXY] &&
*data->set.str[STRING_PROXY]); *data->set.str[STRING_PROXY]);
conn->bits.httpproxy = (bool)(conn->bits.proxy conn->bits.httpproxy = (bool)(conn->bits.proxy &&
&& (conn->proxytype == CURLPROXY_HTTP)); (conn->proxytype == CURLPROXY_HTTP ||
conn->bits.proxy_user_passwd = (bool)(NULL != data->set.str[STRING_PROXYUSERNAME]); conn->proxytype == CURLPROXY_HTTP_1_0));
conn->bits.proxy_user_passwd =
(bool)(NULL != data->set.str[STRING_PROXYUSERNAME]);
conn->bits.tunnel_proxy = data->set.tunnel_thru_httpproxy; conn->bits.tunnel_proxy = data->set.tunnel_thru_httpproxy;
#endif /* CURL_DISABLE_PROXY */ #endif /* CURL_DISABLE_PROXY */
@ -4315,7 +4318,8 @@ static CURLcode create_conn(struct SessionHandle *data,
if(proxy && *proxy) { if(proxy && *proxy) {
long bits = conn->protocol & (PROT_HTTPS|PROT_SSL|PROT_MISSING); long bits = conn->protocol & (PROT_HTTPS|PROT_SSL|PROT_MISSING);
if(conn->proxytype == CURLPROXY_HTTP) { if((conn->proxytype == CURLPROXY_HTTP) ||
(conn->proxytype == CURLPROXY_HTTP_1_0)) {
/* force this connection's protocol to become HTTP */ /* force this connection's protocol to become HTTP */
conn->protocol = PROT_HTTP | bits; conn->protocol = PROT_HTTP | bits;
conn->bits.httpproxy = TRUE; conn->bits.httpproxy = TRUE;

View File

@ -448,6 +448,7 @@ struct Configurable {
char *userpwd; char *userpwd;
char *proxyuserpwd; char *proxyuserpwd;
char *proxy; char *proxy;
int proxyver; /* set to CURLPROXY_HTTP* define */
char *noproxy; char *noproxy;
bool proxytunnel; bool proxytunnel;
bool ftp_append; /* APPE on ftp */ bool ftp_append; /* APPE on ftp */
@ -791,6 +792,7 @@ static void help(void)
" --proxy-negotiate Use Negotiate authentication on the proxy (H)", " --proxy-negotiate Use Negotiate authentication on the proxy (H)",
" --proxy-ntlm Use NTLM authentication on the proxy (H)", " --proxy-ntlm Use NTLM authentication on the proxy (H)",
" -U/--proxy-user <user[:password]> Set proxy user and password", " -U/--proxy-user <user[:password]> Set proxy user and password",
" --proxy1.0 <host[:port]> Use HTTP/1.0 proxy on given port",
" -p/--proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)", " -p/--proxytunnel Operate through a HTTP proxy tunnel (using CONNECT)",
" --pubkey <key> Public key file name (SSH)", " --pubkey <key> Public key file name (SSH)",
" -Q/--quote <cmd> Send command(s) to server before file transfer (F/SFTP)", " -Q/--quote <cmd> Send command(s) to server before file transfer (F/SFTP)",
@ -1681,6 +1683,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
{"$6", "socks5-gssapi-service", TRUE}, {"$6", "socks5-gssapi-service", TRUE},
{"$7", "socks5-gssapi-nec", FALSE}, {"$7", "socks5-gssapi-nec", FALSE},
#endif #endif
{"$8", "proxy1.0", TRUE},
{"0", "http1.0", FALSE}, {"0", "http1.0", FALSE},
{"1", "tlsv1", FALSE}, {"1", "tlsv1", FALSE},
@ -2202,6 +2205,11 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
config->socks5_gssapi_nec = TRUE; config->socks5_gssapi_nec = TRUE;
break; break;
#endif #endif
case '8': /* --proxy1.0 */
/* http 1.0 proxy */
GetStr(&config->proxy, nextarg);
config->proxyver = CURLPROXY_HTTP_1_0;
break;
} }
break; break;
case '#': /* --progress-bar */ case '#': /* --progress-bar */
@ -2887,6 +2895,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
case 'x': case 'x':
/* proxy */ /* proxy */
GetStr(&config->proxy, nextarg); GetStr(&config->proxy, nextarg);
config->proxyver = CURLPROXY_HTTP;
break; break;
case 'X': case 'X':
/* set custom request */ /* set custom request */
@ -4567,6 +4576,8 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
my_setopt(curl, CURLOPT_INFILESIZE_LARGE, uploadfilesize); my_setopt(curl, CURLOPT_INFILESIZE_LARGE, uploadfilesize);
my_setopt(curl, CURLOPT_URL, url); /* what to fetch */ my_setopt(curl, CURLOPT_URL, url); /* what to fetch */
my_setopt(curl, CURLOPT_PROXY, config->proxy); /* proxy to use */ my_setopt(curl, CURLOPT_PROXY, config->proxy); /* proxy to use */
if(config->proxy)
my_setopt(curl, CURLOPT_PROXYTYPE, config->proxyver);
my_setopt(curl, CURLOPT_NOPROGRESS, config->noprogress); my_setopt(curl, CURLOPT_NOPROGRESS, config->noprogress);
if(config->no_body) { if(config->no_body) {
my_setopt(curl, CURLOPT_NOBODY, 1); my_setopt(curl, CURLOPT_NOBODY, 1);

View File

@ -102,12 +102,12 @@ http://test.remote.server.com:1008/path/10080002 --proxy http://%HOSTIP:%HTTPPOR
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart> </strippart>
<protocol> <protocol>
CONNECT test.remote.server.com:1008 HTTP/1.0 CONNECT test.remote.server.com:1008 HTTP/1.1
Host: test.remote.server.com:1008 Host: test.remote.server.com:1008
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:1008 HTTP/1.0 CONNECT test.remote.server.com:1008 HTTP/1.1
Host: test.remote.server.com:1008 Host: test.remote.server.com:1008
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -111,16 +111,16 @@ http://test.remote.server.com:1021/path/10210002 --proxy http://%HOSTIP:%HTTPPOR
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart> </strippart>
<protocol> <protocol>
CONNECT test.remote.server.com:1021 HTTP/1.0 CONNECT test.remote.server.com:1021 HTTP/1.1
Host: test.remote.server.com:1021 Host: test.remote.server.com:1021
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:1021 HTTP/1.0 CONNECT test.remote.server.com:1021 HTTP/1.1
Host: test.remote.server.com:1021 Host: test.remote.server.com:1021
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:1021 HTTP/1.0 CONNECT test.remote.server.com:1021 HTTP/1.1
Host: test.remote.server.com:1021 Host: test.remote.server.com:1021
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -49,7 +49,7 @@ ftp://test-number:1059/wanted/page -p -x %HOSTIP:%HTTPPORT
^User-Agent:.* ^User-Agent:.*
</strip> </strip>
<protocol> <protocol>
CONNECT test-number:1059 HTTP/1.0 CONNECT test-number:1059 HTTP/1.1
Host: test-number:1059 Host: test-number:1059
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -884,11 +884,11 @@ http://test.remote.server.com:1060/path/10600002 --proxy http://%HOSTIP:%HTTPPOR
^User-Agent: curl/.* ^User-Agent: curl/.*
</strip> </strip>
<protocol> <protocol>
CONNECT test.remote.server.com:1060 HTTP/1.0 CONNECT test.remote.server.com:1060 HTTP/1.1
Host: test.remote.server.com:1060 Host: test.remote.server.com:1060
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:1060 HTTP/1.0 CONNECT test.remote.server.com:1060 HTTP/1.1
Host: test.remote.server.com:1060 Host: test.remote.server.com:1060
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:1060", response="b527d164630481e2cc48c04d18ed2212" Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:1060", response="b527d164630481e2cc48c04d18ed2212"
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -889,11 +889,11 @@ http://test.remote.server.com:1061/path/10610002 --proxy http://%HOSTIP:%HTTPPOR
^User-Agent: curl/.* ^User-Agent: curl/.*
</strip> </strip>
<protocol> <protocol>
CONNECT test.remote.server.com:1061 HTTP/1.0 CONNECT test.remote.server.com:1061 HTTP/1.1
Host: test.remote.server.com:1061 Host: test.remote.server.com:1061
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:1061 HTTP/1.0 CONNECT test.remote.server.com:1061 HTTP/1.1
Host: test.remote.server.com:1061 Host: test.remote.server.com:1061
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:1061", response="244a8caab5f343a1a20d2425e4d6e951" Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:1061", response="244a8caab5f343a1a20d2425e4d6e951"
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -33,10 +33,10 @@ contents
http http
</server> </server>
<name> <name>
HTTP CONNECT with proxytunnel and downgrade to HTTP/1.0 HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0
</name> </name>
<command> <command>
-x %HOSTIP:%HTTPPORT -p http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 --proxy1.0 %HOSTIP:%HTTPPORT -p http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP:%HTTPPORT/we/want/that/page/1078
</command> </command>
</client> </client>

View File

@ -81,11 +81,11 @@ http://test.remote.server.com:206/path/2060002 --proxy http://%HOSTIP:%HTTPPORT
^User-Agent: curl/.* ^User-Agent: curl/.*
</strip> </strip>
<protocol> <protocol>
CONNECT test.remote.server.com:206 HTTP/1.0 CONNECT test.remote.server.com:206 HTTP/1.1
Host: test.remote.server.com:206 Host: test.remote.server.com:206
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:206 HTTP/1.0 CONNECT test.remote.server.com:206 HTTP/1.1
Host: test.remote.server.com:206 Host: test.remote.server.com:206
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:206", response="5059a96c954981ceb94e17d667c8d3f8" Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.server.com:206", response="5059a96c954981ceb94e17d667c8d3f8"
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -95,12 +95,12 @@ http://test.remote.server.com:209/path/2090002 --proxy http://%HOSTIP:%HTTPPORT
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart> </strippart>
<protocol> <protocol>
CONNECT test.remote.server.com:209 HTTP/1.0 CONNECT test.remote.server.com:209 HTTP/1.1
Host: test.remote.server.com:209 Host: test.remote.server.com:209
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:209 HTTP/1.0 CONNECT test.remote.server.com:209 HTTP/1.1
Host: test.remote.server.com:209 Host: test.remote.server.com:209
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -77,10 +77,10 @@ http
NTLM NTLM
</features> </features>
<name> <name>
HTTP proxy CONNECT auth NTLM and then POST HTTP 1.0 proxy CONNECT auth NTLM and then POST
</name> </name>
<command> <command>
http://test.remote.server.com:213/path/2130002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit" http://test.remote.server.com:213/path/2130002 --proxy1.0 http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit"
</command> </command>
</client> </client>

View File

@ -42,7 +42,7 @@ http://test.remote.server.com:217/path/2170002 --proxy http://%HOSTIP:%HTTPPORT
^User-Agent: curl/.* ^User-Agent: curl/.*
</strip> </strip>
<protocol> <protocol>
CONNECT test.remote.server.com:217 HTTP/1.0 CONNECT test.remote.server.com:217 HTTP/1.1
Host: test.remote.server.com:217 Host: test.remote.server.com:217
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -98,12 +98,12 @@ http://test.remote.server.com:265/path/2650002 --proxy http://%HOSTIP:%HTTPPORT
s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/ s/^(Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA).*/$1/
</strippart> </strippart>
<protocol nonewline="yes"> <protocol nonewline="yes">
CONNECT test.remote.server.com:265 HTTP/1.0 CONNECT test.remote.server.com:265 HTTP/1.1
Host: test.remote.server.com:265 Host: test.remote.server.com:265
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
CONNECT test.remote.server.com:265 HTTP/1.0 CONNECT test.remote.server.com:265 HTTP/1.1
Host: test.remote.server.com:265 Host: test.remote.server.com:265
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAA
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -57,7 +57,7 @@ http://remotesite.com/we/want/that/page/275 -p -x %HOSTIP:%HTTPPORT --user iam:m
^User-Agent:.* ^User-Agent:.*
</strip> </strip>
<protocol> <protocol>
CONNECT remotesite.com:80 HTTP/1.0 CONNECT remotesite.com:80 HTTP/1.1
Host: remotesite.com:80 Host: remotesite.com:80
Proxy-Authorization: Basic eW91YXJlOnlvdXJzZWxm Proxy-Authorization: Basic eW91YXJlOnlvdXJzZWxm
User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3

View File

@ -36,7 +36,7 @@ http://test.remote.server.com:287/path/287 -H "User-Agent: looser/2007" --proxy
# Verify data after the test has been "shot" # Verify data after the test has been "shot"
<verify> <verify>
<protocol> <protocol>
CONNECT test.remote.server.com:287 HTTP/1.0 CONNECT test.remote.server.com:287 HTTP/1.1
Host: test.remote.server.com:287 Host: test.remote.server.com:287
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive
User-Agent: looser/2007 User-Agent: looser/2007

View File

@ -61,7 +61,7 @@ moo
# Verify data after the test has been "shot" # Verify data after the test has been "shot"
<verify> <verify>
<protocol> <protocol>
CONNECT %HOSTIP:%HTTPSPORT HTTP/1.0 CONNECT %HOSTIP:%HTTPSPORT HTTP/1.1
Host: %HOSTIP:%HTTPSPORT Host: %HOSTIP:%HTTPSPORT
Proxy-Authorization: Basic dGVzdDppbmc= Proxy-Authorization: Basic dGVzdDppbmc=
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -45,10 +45,10 @@ contents
http http
</server> </server>
<name> <name>
HTTP CONNECT with proxytunnel and host Basic authentication HTTP 1.0 CONNECT with proxytunnel and host Basic authentication
</name> </name>
<command> <command>
http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p -x %HOSTIP:%HTTPPORT --user iam:myself --proxy-user youare:yourself http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p --proxy1.0 %HOSTIP:%HTTPPORT --user iam:myself --proxy-user youare:yourself
</command> </command>
</client> </client>

View File

@ -56,7 +56,7 @@ http://%HOSTIP:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%HTTPPORT --user iam
^User-Agent:.* ^User-Agent:.*
</strip> </strip>
<protocol> <protocol>
CONNECT %HOSTIP:%HTTPPORT HTTP/1.0 CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
Host: %HOSTIP:%HTTPPORT Host: %HOSTIP:%HTTPPORT
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive

View File

@ -31,10 +31,10 @@ http
SSL SSL
</features> </features>
<name> <name>
HTTPS GET with failed proxy auth HTTPS GET with failed proxy auth (CONNECT 1.0)
</name> </name>
<command> <command>
https://test.anything.really.com:94 -x %HOSTIP:%HTTPPORT https://test.anything.really.com:94 --proxy1.0 %HOSTIP:%HTTPPORT
</command> </command>
</client> </client>

View File

@ -56,7 +56,7 @@ http://%HOSTIP:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%HTTPPORT -d "datato
^User-Agent:.* ^User-Agent:.*
</strip> </strip>
<protocol nonewline="yes"> <protocol nonewline="yes">
CONNECT %HOSTIP:%HTTPPORT HTTP/1.0 CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3 User-Agent: curl/7.10.7-pre2 (i686-pc-linux-gnu) libcurl/7.10.7-pre2 OpenSSL/0.9.7a zlib/1.1.3
Host: %HOSTIP:%HTTPPORT Host: %HOSTIP:%HTTPPORT
Proxy-Connection: Keep-Alive Proxy-Connection: Keep-Alive