test1509: verify proxy header response headers count

Modified sws to support and use custom CONNECT responses instead of the
previously naive hard-coded version. Made the HTTP test server able to
extract test case number from the host name in a CONNECT request by
finding the number after the last dot. It makes 'machine.moo.123' use
test case 123.

Adapted a larger amount of tests to the new <connect> style.

Bug: http://curl.haxx.se/bug/view.cgi?id=1204
Reported by: Martin Jansen
This commit is contained in:
Daniel Stenberg
2013-03-15 17:28:32 +01:00
parent 142755fa5c
commit 1e29d275c6
30 changed files with 495 additions and 263 deletions

View File

@@ -109,7 +109,7 @@ test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \
test1408 test1409 test1410 test1411 test1412 test1413 \
\
test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1507 \
test1508 \
test1508 test1509 \
\
test1900 test1901 test1902 test1903 \
\

View File

@@ -16,7 +16,7 @@ connection-monitor
</servercmd>
# this is returned first since we get no proxy-auth
<data1001>
<connect1001>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
Transfer-Encoding: chunked
@@ -27,16 +27,16 @@ FA0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0
</data1001>
</connect1001>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1002>
<connect1002>
HTTP/1.1 200 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
</data1002>
</connect1002>
# this is returned when we get a GET!
<data2>
@@ -96,7 +96,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
http://test.remote.example.com:1008/path/10080002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel
http://test.remote.example.com.1008:%HTTPPORT/path/10080002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel
</command>
<precheck>
chkhostname curlhost
@@ -109,19 +109,19 @@ chkhostname curlhost
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.example.com:1008 HTTP/1.1
Host: test.remote.example.com:1008
CONNECT test.remote.example.com.1008:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.1008:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive
CONNECT test.remote.example.com:1008 HTTP/1.1
Host: test.remote.example.com:1008
CONNECT test.remote.example.com.1008:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.1008:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAAIAAgAdQAAAAAAAAAAAAAABoKBAKAeQjzKtCQ7ubW8S6MN7B59436GAxPu0CVROwwNBsgxML49gcbAXLT/bU+H5wrS9XNpbGx5Y3VybGhvc3Q=
Proxy-Connection: Keep-Alive
GET /path/10080002 HTTP/1.1
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
Host: test.remote.example.com:1008
Host: test.remote.example.com.1008:%HTTPPORT
Accept: */*
[DISCONNECT]

View File

@@ -12,32 +12,32 @@ HTTP proxy NTLM auth
# Server-side
<reply>
<data>
<connect>
HTTP/1.1 407 Authorization Required to proxy me my dear swsclose
Proxy-Authenticate: NTLM
Content-Length: 21
Connection: close
data to discard
</data>
</connect>
# this is returned first since we get no proxy-auth
<data1001>
<connect1001>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
Content-Length: 28
And you should ignore this data.
</data1001>
</connect1001>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1002>
<connect1002>
HTTP/1.1 200 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
</data1002>
</connect1002>
# this is returned when we get a GET!
<data2>
@@ -102,7 +102,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
http://test.remote.example.com:1021/path/10210002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-anyauth --proxytunnel
http://test.remote.example.com.1021:%HTTPPORT/path/10210002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-anyauth --proxytunnel
</command>
<precheck>
chkhostname curlhost
@@ -115,23 +115,23 @@ chkhostname curlhost
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.example.com:1021 HTTP/1.1
Host: test.remote.example.com:1021
CONNECT test.remote.example.com.1021:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.1021:%HTTPPORT
Proxy-Connection: Keep-Alive
CONNECT test.remote.example.com:1021 HTTP/1.1
Host: test.remote.example.com:1021
CONNECT test.remote.example.com.1021:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.1021:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive
CONNECT test.remote.example.com:1021 HTTP/1.1
Host: test.remote.example.com:1021
CONNECT test.remote.example.com.1021:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.1021:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAAIAAgAdQAAAAAAAAAAAAAABoKBAKAeQjzKtCQ7ubW8S6MN7B59436GAxPu0CVROwwNBsgxML49gcbAXLT/bU+H5wrS9XNpbGx5Y3VybGhvc3Q=
Proxy-Connection: Keep-Alive
GET /path/10210002 HTTP/1.1
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
Host: test.remote.example.com:1021
Host: test.remote.example.com.1021:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -12,13 +12,13 @@ FAILURE
#
# Server-side
<reply>
<data>
<connect>
HTTP/1.1 501 Method not implemented swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Connection: close
Content-Length: 0
</data>
</connect>
</reply>
#

View File

@@ -14,7 +14,7 @@ HTTP proxy Digest auth
<reply>
# this is returned first since we get no proxy-auth
<data>
<connect>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 40000
@@ -820,7 +820,7 @@ And you should ignore this data. aaaaaaaaaaaaaaaa
And you should ignore this data. aaaaaaaaaaaaaaaa
And you should ignore this data. aaaaaaaaaaaaaaaa
end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
</data>
</connect>
# this is returned when we get a GET!
<data2>
@@ -835,12 +835,12 @@ daniel
</data2>
# then this is returned when we get proxy-auth
<data1000>
<connect1000>
HTTP/1.1 200 OK swsbounce
Server: no
Nice proxy auth sir!
</data1000>
</connect1000>
<datacheck>
HTTP/1.1 407 Authorization Required to proxy me my dear
@@ -874,7 +874,7 @@ crypto
HTTP proxy CONNECT auth Digest, large headers and data
</name>
<command>
http://test.remote.haxx.se:1060/path/10600002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel
http://test.remote.haxx.se.1060:%HTTPPORT/path/10600002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel
</command>
</client>
@@ -884,17 +884,17 @@ http://test.remote.haxx.se:1060/path/10600002 --proxy http://%HOSTIP:%HTTPPORT -
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.haxx.se:1060 HTTP/1.1
Host: test.remote.haxx.se:1060
CONNECT test.remote.haxx.se.1060:%HTTPPORT HTTP/1.1
Host: test.remote.haxx.se.1060:%HTTPPORT
Proxy-Connection: Keep-Alive
CONNECT test.remote.haxx.se:1060 HTTP/1.1
Host: test.remote.haxx.se:1060
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se:1060", response="79e394ffcd42b6c771c7582da1fc4498"
CONNECT test.remote.haxx.se.1060:%HTTPPORT HTTP/1.1
Host: test.remote.haxx.se.1060:%HTTPPORT
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se.1060:%HTTPPORT", response="e1fbed39c26f4efe284adc0e576ff638"
Proxy-Connection: Keep-Alive
GET /path/10600002 HTTP/1.1
Host: test.remote.haxx.se:1060
Host: test.remote.haxx.se.1060:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -15,7 +15,7 @@ HTTP proxy Digest auth
<reply>
# this is returned first since we get no proxy-auth
<data>
<connect>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Transfer-Encoding: chunked
@@ -825,7 +825,7 @@ end of 1 KB aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
0
</data>
</connect>
# this is returned when we get a GET!
<data2>
@@ -840,12 +840,12 @@ daniel
</data2>
# then this is returned when we get proxy-auth
<data1000>
<connect1000>
HTTP/1.1 200 OK swsbounce
Server: no
Nice proxy auth sir!
</data1000>
</connect1000>
<datacheck>
HTTP/1.1 407 Authorization Required to proxy me my dear
@@ -879,7 +879,7 @@ crypto
HTTP proxy CONNECT auth Digest, large headers and chunked data
</name>
<command>
http://test.remote.haxx.se:1061/path/10610002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel
http://test.remote.haxx.se.1061:%HTTPPORT/path/10610002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel
</command>
</client>
@@ -889,17 +889,17 @@ http://test.remote.haxx.se:1061/path/10610002 --proxy http://%HOSTIP:%HTTPPORT -
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.haxx.se:1061 HTTP/1.1
Host: test.remote.haxx.se:1061
CONNECT test.remote.haxx.se.1061:%HTTPPORT HTTP/1.1
Host: test.remote.haxx.se.1061:%HTTPPORT
Proxy-Connection: Keep-Alive
CONNECT test.remote.haxx.se:1061 HTTP/1.1
Host: test.remote.haxx.se:1061
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se:1061", response="8e96acf6a6214012183879e28e73b2d3"
CONNECT test.remote.haxx.se.1061:%HTTPPORT HTTP/1.1
Host: test.remote.haxx.se.1061:%HTTPPORT
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se.1061:%HTTPPORT", response="4e23449fa93224834299e7282a70472c"
Proxy-Connection: Keep-Alive
GET /path/10610002 HTTP/1.1
Host: test.remote.haxx.se:1061
Host: test.remote.haxx.se.1061:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -13,6 +13,12 @@ proxytunnel
#
# Server-side
<reply>
<connect>
HTTP/1.1 200 Mighty fine indeed
Server: test tunnel 2000
</connect>
<data nocheck="yes">
HTTP/1.0 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
@@ -37,7 +43,7 @@ http-proxy
HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0
</name>
<command>
--proxy1.0 %HOSTIP:%PROXYPORT -p http://%HOSTIP:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP:%HTTPPORT/we/want/that/page/1078
--proxy1.0 %HOSTIP:%PROXYPORT -p http://%HOSTIP.1078:%HTTPPORT/we/want/that/page/1078 http://%HOSTIP.1078:%HTTPPORT/we/want/that/page/1078
</command>
</client>
@@ -48,23 +54,24 @@ HTTP 1.0 CONNECT with proxytunnel and downgrade GET to HTTP/1.0
^User-Agent:.*
</strip>
<proxy>
CONNECT %HOSTIP:%HTTPPORT HTTP/1.0
Host: %HOSTIP:%HTTPPORT
CONNECT %HOSTIP.1078:%HTTPPORT HTTP/1.0
Host: %HOSTIP.1078:%HTTPPORT
Proxy-Connection: Keep-Alive
</proxy>
<protocol>
GET /we/want/that/page/1078 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Host: %HOSTIP.1078:%HTTPPORT
Accept: */*
GET /we/want/that/page/1078 HTTP/1.0
Host: %HOSTIP:%HTTPPORT
Host: %HOSTIP.1078:%HTTPPORT
Accept: */*
</protocol>
<stdout>
HTTP/1.1 200 Mighty fine indeed
Server: test tunnel 2000
HTTP/1.0 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT

View File

@@ -18,13 +18,15 @@ Content-Length: 27
This is all fine and dandy
</data>
<data1001>
<connect1001>
HTTP/1.1 200 We are fine and cool
Server: Apache/1.3.27 (Dorw1n) PHP/44.1.2
Content-Length: 27
This is all fine and dandy
</data1001>
</connect1001>
<datacheck>
HTTP/1.1 200 We are fine and cool
Server: Apache/1.3.27 (Dorw1n) PHP/44.1.2
@@ -50,7 +52,7 @@ NTLM
HTTP POST using CONNECT with --proxy-ntlm but no auth is required
</name>
<command>
http://test.a.galaxy.far.far.away:1097/1097 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-ntlm -d "dummy=value" -p
http://test.a.galaxy.far.far.away.1097:%HTTPPORT/1097 --proxy http://%HOSTIP:%HTTPPORT --proxy-user foo:bar --proxy-ntlm -d "dummy=value" -p
</command>
</client>
@@ -60,15 +62,15 @@ http://test.a.galaxy.far.far.away:1097/1097 --proxy http://%HOSTIP:%HTTPPORT --p
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.a.galaxy.far.far.away:1097 HTTP/1.1
Host: test.a.galaxy.far.far.away:1097
CONNECT test.a.galaxy.far.far.away.1097:%HTTPPORT HTTP/1.1
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
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
Proxy-Connection: Keep-Alive
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
Host: test.a.galaxy.far.far.away:1097
Host: test.a.galaxy.far.far.away.1097:%HTTPPORT
Accept: */*
Content-Length: 0
Content-Type: application/x-www-form-urlencoded

View File

@@ -12,12 +12,21 @@ HTTP proxy
#
# Server-side
<reply>
<connect>
HTTP/1.1 200 Mighty fine indeed
Magic: sure you can FTP me
</connect>
# When doing LIST, we get the default list output hard-coded in the test
# FTP server
<datacheck>
HTTP/1.1 200 Mighty fine indeed
Magic: sure you can FTP me
HTTP/1.1 200 Mighty fine indeed
Magic: sure you can FTP me
total 20
drwxr-xr-x 8 98 98 512 Oct 22 13:06 .
@@ -36,6 +45,11 @@ dr-xr-xr-x 5 0 1 512 Oct 1 1997 usr
#
# Client-side
<client>
# please send the real CONNECT connect off to the FTP server's port
<connectport>
%FTPPORT
</connectport>
<server>
ftp
http-proxy
@@ -44,7 +58,7 @@ http-proxy
FTP LIST tunneled through HTTP proxy
</name>
<command>
ftp://%HOSTIP:%FTPPORT/ -p -x %HOSTIP:%PROXYPORT
ftp://ftp.1316:%FTPPORT/ -p -x %HOSTIP:%PROXYPORT
</command>
</client>

View File

@@ -11,6 +11,13 @@ HTTP proxy
#
# Server-side
<reply>
<connect>
HTTP/1.1 200 Mighty fine indeed
pop3: sure hit me
</connect>
# When doing LIST, we get the default list output hard-coded in the test
# FTP server
<data>
@@ -25,6 +32,7 @@ body
<datacheck>
HTTP/1.1 200 Mighty fine indeed
pop3: sure hit me
From: me@somewhere
To: fake@nowhere
@@ -47,7 +55,7 @@ http-proxy
POP3 fetch tunneled through HTTP proxy
</name>
<command>
pop3://%HOSTIP:%POP3PORT/1319 -p -x %HOSTIP:%PROXYPORT -u user:secret
pop3://pop.1319:%POP3PORT/1319 -p -x %HOSTIP:%PROXYPORT -u user:secret
</command>
</client>
@@ -65,8 +73,8 @@ RETR 1319
QUIT
</protocol>
<proxy>
CONNECT %HOSTIP:%POP3PORT HTTP/1.1
Host: %HOSTIP:%POP3PORT
CONNECT pop.1319:%POP3PORT HTTP/1.1
Host: pop.1319:%POP3PORT
User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
Proxy-Connection: Keep-Alive

View File

@@ -11,6 +11,11 @@ HTTP proxy
#
# Server-side
<reply>
<connect>
HTTP/1.1 200 Mighty fine indeed
smtp: sure hit me
</connect>
</reply>
#
@@ -30,7 +35,7 @@ To: another
body
</stdin>
<command>
smtp://%HOSTIP:%SMTPPORT/user --mail-rcpt 1320@foo --mail-rcpt 1320@foobar.example --mail-from 1320@from -T - -p -x %HOSTIP:%PROXYPORT
smtp://smtp.1320:%SMTPPORT/user --mail-rcpt 1320@foo --mail-rcpt 1320@foobar.example --mail-from 1320@from -T - -p -x %HOSTIP:%PROXYPORT
</command>
</client>
@@ -57,8 +62,8 @@ body
.
</upload>
<proxy>
CONNECT %HOSTIP:%SMTPPORT HTTP/1.1
Host: %HOSTIP:%SMTPPORT
CONNECT smtp.1320:%SMTPPORT HTTP/1.1
Host: smtp.1320:%SMTPPORT
User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
Proxy-Connection: Keep-Alive

View File

@@ -12,6 +12,11 @@ HTTP proxy
#
# Server-side
<reply>
<connect>
HTTP/1.1 200 Mighty fine indeed
imap: sure hit me
</connect>
<data>
From: me@somewhere
To: fake@nowhere
@@ -23,6 +28,7 @@ body
</data>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
imap: sure hit me
From: me@somewhere
To: fake@nowhere
@@ -45,7 +51,7 @@ http-proxy
IMAP FETCH tunneled through HTTP proxy
</name>
<command>
'imap://%HOSTIP:%IMAPPORT/1321/;UID=1' -u user:secret -p -x %HOSTIP:%PROXYPORT
'imap://imap.1321:%IMAPPORT/1321/;UID=1' -u user:secret -p -x %HOSTIP:%PROXYPORT
</command>
</client>
@@ -63,8 +69,8 @@ A004 FETCH 1 BODY[]
A005 LOGOUT
</protocol>
<proxy>
CONNECT %HOSTIP:%IMAPPORT HTTP/1.1
Host: %HOSTIP:%IMAPPORT
CONNECT imap.1321:%IMAPPORT HTTP/1.1
Host: imap.1321:%IMAPPORT
User-Agent: curl/7.24.0-DEV (i686-pc-linux-gnu) libcurl/7.24.0-DEV OpenSSL/1.0.0e zlib/1.2.3.4 c-ares/1.7.6-DEV libidn/1.23 libssh2/1.4.0_DEV librtmp/2.2e
Proxy-Connection: Keep-Alive

88
tests/data/test1509 Normal file
View File

@@ -0,0 +1,88 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP CONNECT
HTTP proxy
proxytunnel
</keywords>
</info>
# Server-side
<reply>
<servercmd>
connection-monitor
</servercmd>
<connect>
HTTP/1.1 200 Mighty fine indeed
Server: the beast that eats naughty clients
</connect>
<data>
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
</data>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
Server: the beast that eats naughty clients
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
header length is ........: 239
header length should be..: 239
</datacheck>
</reply>
# Client-side
<client>
<server>
http
http-proxy
</server>
# tool is what to use instead of 'curl'
<tool>
lib1509
</tool>
<name>
simple multi http:// through proxytunnel with authentication info
</name>
<command>
http://the.old.moo.1509:%HTTPPORT/1509 %HOSTIP:%PROXYPORT
</command>
<file name="log/test1509.txt">
foo
bar
bar
foo
moo
</file>
</client>
# Verify data after the test has been "shot"
<verify>
<proxy>
CONNECT the.old.moo.1509:%HTTPPORT HTTP/1.1
Host: the.old.moo.1509:%HTTPPORT
Proxy-Connection: Keep-Alive
</proxy>
<protocol>
GET /1509 HTTP/1.1
Host: the.old.moo.1509:%HTTPPORT
Accept: */*
[DISCONNECT]
</protocol>
</verify>
</testcase>

View File

@@ -14,16 +14,18 @@ HTTP proxy Digest auth
<reply>
<servercmd>
connection-monitor
auth_required
</servercmd>
# this is returned first since we get no proxy-auth
<data>
<connect>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: Digest realm="weirdorealm", nonce="12345"
Content-Length: 33
And you should ignore this data.
</data>
</connect>
# this is returned when we get a GET!
<data2>
@@ -38,11 +40,11 @@ daniel
</data2>
# then this is returned when we get proxy-auth
<data1000>
<connect1000>
HTTP/1.1 200 OK swsbounce
Server: no
</data1000>
</connect1000>
<datacheck>
HTTP/1.1 407 Authorization Required to proxy me my dear
@@ -75,7 +77,7 @@ crypto
HTTP proxy CONNECT auth Digest
</name>
<command>
http://test.remote.haxx.se:206/path/2060002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel
http://test.remote.haxx.se.206:%HTTPPORT/path/2060002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-digest --proxytunnel
</command>
</client>
@@ -85,18 +87,18 @@ http://test.remote.haxx.se:206/path/2060002 --proxy http://%HOSTIP:%HTTPPORT --p
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.haxx.se:206 HTTP/1.1
Host: test.remote.haxx.se:206
CONNECT test.remote.haxx.se.206:%HTTPPORT HTTP/1.1
Host: test.remote.haxx.se.206:%HTTPPORT
Proxy-Connection: Keep-Alive
CONNECT test.remote.haxx.se:206 HTTP/1.1
Host: test.remote.haxx.se:206
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se:206", response="676e0836f3e1c5b31bf29770ef9d8224"
CONNECT test.remote.haxx.se.206:%HTTPPORT HTTP/1.1
Host: test.remote.haxx.se.206:%HTTPPORT
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="test.remote.haxx.se.206:%HTTPPORT", response="003e36decb4dbf6366b3ecb9b87c24ec"
Proxy-Connection: Keep-Alive
GET /path/2060002 HTTP/1.1
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
Host: test.remote.haxx.se:206
Host: test.remote.haxx.se.206:%HTTPPORT
Accept: */*
[DISCONNECT]

View File

@@ -13,21 +13,21 @@ HTTP proxy NTLM auth
<reply>
# this is returned first since we get no proxy-auth
<data1001>
<connect1001>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
And you should ignore this data.
</data1001>
</connect1001>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1002>
<connect1002>
HTTP/1.1 200 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
</data1002>
</connect1002>
# this is returned when we get a GET!
<data2>
@@ -86,7 +86,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
http://test.remote.example.com:209/path/2090002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel
http://test.remote.example.com.209:%HTTPPORT/path/2090002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel
</command>
<precheck>
chkhostname curlhost
@@ -99,19 +99,19 @@ chkhostname curlhost
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.example.com:209 HTTP/1.1
Host: test.remote.example.com:209
CONNECT test.remote.example.com.209:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.209:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive
CONNECT test.remote.example.com:209 HTTP/1.1
Host: test.remote.example.com:209
CONNECT test.remote.example.com.209:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.209:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAAIAAgAdQAAAAAAAAAAAAAABoKBAKAeQjzKtCQ7ubW8S6MN7B59436GAxPu0CVROwwNBsgxML49gcbAXLT/bU+H5wrS9XNpbGx5Y3VybGhvc3Q=
Proxy-Connection: Keep-Alive
GET /path/2090002 HTTP/1.1
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
Host: test.remote.example.com:209
Host: test.remote.example.com.209:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -13,21 +13,21 @@ HTTP proxy NTLM auth
<reply>
# this is returned first since we get no proxy-auth
<data1001>
<connect1001>
HTTP/1.1 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
And you should ignore this data.
</data1001>
</connect1001>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1002>
<connect1002>
HTTP/1.1 200 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
</data1002>
</connect1002>
# this is returned when we get a GET!
<data2>
@@ -86,7 +86,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
http://test.remote.example.com:213/path/2130002 --proxy1.0 http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit"
http://test.remote.example.com.213:%HTTPPORT/path/2130002 --proxy1.0 http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit"
</command>
<precheck>
chkhostname curlhost
@@ -99,19 +99,19 @@ chkhostname curlhost
^User-Agent: curl/.*
</strip>
<protocol nonewline="yes">
CONNECT test.remote.example.com:213 HTTP/1.0
Host: test.remote.example.com:213
CONNECT test.remote.example.com.213:%HTTPPORT HTTP/1.0
Host: test.remote.example.com.213:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive
CONNECT test.remote.example.com:213 HTTP/1.0
Host: test.remote.example.com:213
CONNECT test.remote.example.com.213:%HTTPPORT HTTP/1.0
Host: test.remote.example.com.213:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAAIAAgAdQAAAAAAAAAAAAAABoKBAKAeQjzKtCQ7ubW8S6MN7B59436GAxPu0CVROwwNBsgxML49gcbAXLT/bU+H5wrS9XNpbGx5Y3VybGhvc3Q=
Proxy-Connection: Keep-Alive
POST /path/2130002 HTTP/1.1
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
Host: test.remote.example.com:213
Host: test.remote.example.com.213:%HTTPPORT
Accept: */*
Content-Length: 6
Content-Type: application/x-www-form-urlencoded

View File

@@ -15,11 +15,11 @@ followlocation
<reply>
# this is returned first since we get no proxy-auth
<data nocheck="yes">
<connect nocheck="yes">
HTTP/1.1 405 Method Not Allowed swsclose
And you should ignore this data.
</data>
</connect>
</reply>
@@ -32,7 +32,7 @@ http
HTTP proxy CONNECT to proxy returning 405
</name>
<command>
http://test.remote.example.com:217/path/2170002 --proxy http://%HOSTIP:%HTTPPORT --proxytunnel -w "%{http_code} %{http_connect}\n"
http://test.remote.example.com.217:%HTTPPORT/path/2170002 --proxy http://%HOSTIP:%HTTPPORT --proxytunnel -w "%{http_code} %{http_connect}\n"
</command>
</client>
@@ -42,8 +42,8 @@ http://test.remote.example.com:217/path/2170002 --proxy http://%HOSTIP:%HTTPPORT
^User-Agent: curl/.*
</strip>
<protocol>
CONNECT test.remote.example.com:217 HTTP/1.1
Host: test.remote.example.com:217
CONNECT test.remote.example.com.217:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.217:%HTTPPORT
Proxy-Connection: Keep-Alive
</protocol>

View File

@@ -13,23 +13,23 @@ HTTP proxy NTLM auth
<reply>
# this is returned first since we get no proxy-auth
<data1001>
<connect1001>
HTTP/1.0 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==
Content-Length: 1033
And you should ignore this data.
QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQz
</data1001>
</connect1001>
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
<data1002>
<connect1002>
HTTP/1.1 200 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
</data1002>
</connect1002>
# this is returned when we get a GET!
<data2>
@@ -89,7 +89,7 @@ CURL_GETHOSTNAME=curlhost
LD_PRELOAD=%PWD/libtest/.libs/libhostname.so
</setenv>
<command>
http://test.remote.example.com:265/path/2650002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit"
http://test.remote.example.com.265:%HTTPPORT/path/2650002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user silly:person --proxy-ntlm --proxytunnel -d "postit"
</command>
<precheck>
chkhostname curlhost
@@ -102,19 +102,19 @@ chkhostname curlhost
^User-Agent: curl/.*
</strip>
<protocol nonewline="yes">
CONNECT test.remote.example.com:265 HTTP/1.1
Host: test.remote.example.com:265
CONNECT test.remote.example.com.265:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.265:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA=
Proxy-Connection: Keep-Alive
CONNECT test.remote.example.com:265 HTTP/1.1
Host: test.remote.example.com:265
CONNECT test.remote.example.com.265:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.265:%HTTPPORT
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAABQAFAHAAAAAIAAgAdQAAAAAAAAAAAAAABoKBAKAeQjzKtCQ7ubW8S6MN7B59436GAxPu0CVROwwNBsgxML49gcbAXLT/bU+H5wrS9XNpbGx5Y3VybGhvc3Q=
Proxy-Connection: Keep-Alive
POST /path/2650002 HTTP/1.1
User-Agent: curl/7.12.3-CVS (i686-pc-linux-gnu) libcurl/7.12.3-CVS OpenSSL/0.9.6b zlib/1.1.4
Host: test.remote.example.com:265
Host: test.remote.example.com.265:%HTTPPORT
Accept: */*
Content-Length: 6
Content-Type: application/x-www-form-urlencoded

View File

@@ -14,6 +14,12 @@ proxytunnel
#
# Server-side
<reply>
<connect>
HTTP/1.1 200 OK
Connected-fine: sure
</connect>
<data>
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
@@ -24,7 +30,8 @@ Content-Length: 9
contents
</data>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
HTTP/1.1 200 OK
Connected-fine: sure
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
@@ -47,7 +54,7 @@ http-proxy
HTTP CONNECT with proxytunnel getting two URLs from the same host
</name>
<command>
http://remotesite.com:%HTTPPORT/we/want/that/page/275 -p -x %HOSTIP:%PROXYPORT --user iam:myself --proxy-user youare:yourself http://remotesite.com:%HTTPPORT/we/want/that/page/275
http://remotesite.com.275:%HTTPPORT/we/want/that/page/275 -p -x %HOSTIP:%PROXYPORT --user iam:myself --proxy-user youare:yourself http://remotesite.com.275:%HTTPPORT/we/want/that/page/275
</command>
</client>
@@ -58,8 +65,8 @@ http://remotesite.com:%HTTPPORT/we/want/that/page/275 -p -x %HOSTIP:%PROXYPORT -
^User-Agent:.*
</strip>
<proxy>
CONNECT remotesite.com:%HTTPPORT HTTP/1.1
Host: remotesite.com:%HTTPPORT
CONNECT remotesite.com.275:%HTTPPORT HTTP/1.1
Host: remotesite.com.275:%HTTPPORT
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
Proxy-Connection: Keep-Alive
@@ -68,12 +75,12 @@ Proxy-Connection: Keep-Alive
<protocol>
GET /we/want/that/page/275 HTTP/1.1
Authorization: Basic aWFtOm15c2VsZg==
Host: remotesite.com:%HTTPPORT
Host: remotesite.com.275:%HTTPPORT
Accept: */*
GET /we/want/that/page/275 HTTP/1.1
Authorization: Basic aWFtOm15c2VsZg==
Host: remotesite.com:%HTTPPORT
Host: remotesite.com.275:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -11,12 +11,11 @@ proxytunnel
# Server-side
<reply>
# this is returned first since we get no proxy-auth
<data nocheck="yes">
<connect nocheck="yes">
HTTP/1.1 405 Method Not Allowed swsclose
And you should ignore this data.
</data>
</connect>
</reply>
@@ -29,15 +28,15 @@ http
HTTP proxy CONNECT with custom User-Agent header
</name>
<command>
http://test.remote.example.com:287/path/287 -H "User-Agent: looser/2007" --proxy http://%HOSTIP:%HTTPPORT --proxytunnel
http://test.remote.example.com.287:%HTTPPORT/path/287 -H "User-Agent: looser/2007" --proxy http://%HOSTIP:%HTTPPORT --proxytunnel
</command>
</client>
# Verify data after the test has been "shot"
<verify>
<protocol>
CONNECT test.remote.example.com:287 HTTP/1.1
Host: test.remote.example.com:287
CONNECT test.remote.example.com.287:%HTTPPORT HTTP/1.1
Host: test.remote.example.com.287:%HTTPPORT
Proxy-Connection: Keep-Alive
User-Agent: looser/2007

View File

@@ -9,6 +9,17 @@ FAILURE
</keywords>
</info>
# Server-side
<reply>
<connect nocheck="yes">
HTTP/1.1 405 Method Not Allowed swsclose
And you should ignore this data.
</connect>
</reply>
# Client-side
<client>
<features>
@@ -21,7 +32,7 @@ https
HTTPS GET over HTTP proxy fails
</name>
<command>
-k -U fake:user -x %HOSTIP:%HTTPPORT https://bad.fakeurl-to.test/slash/302
-k -U fake:user -x %HOSTIP:%HTTPPORT https://bad.fakeurl-to.test:302/slash/302
</command>
</client>

View File

@@ -16,6 +16,10 @@ multi
<servercmd>
connection-monitor
</servercmd>
<connect>
HTTP/1.1 200 Mighty fine indeed
</connect>
<data>
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
@@ -51,7 +55,7 @@ lib503
simple multi http:// through proxytunnel with authentication info
</name>
<command>
http://%HOSTIP:%HTTPPORT/503 %HOSTIP:%PROXYPORT
http://machine.503:%HTTPPORT/503 %HOSTIP:%PROXYPORT
</command>
<file name="log/test503.txt">
foo
@@ -65,8 +69,8 @@ moo
# Verify data after the test has been "shot"
<verify>
<proxy>
CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
Host: %HOSTIP:%HTTPPORT
CONNECT machine.503:%HTTPPORT HTTP/1.1
Host: machine.503:%HTTPPORT
Proxy-Authorization: Basic dGVzdDppbmc=
Proxy-Connection: Keep-Alive
@@ -74,7 +78,7 @@ Proxy-Connection: Keep-Alive
<protocol>
GET /503 HTTP/1.1
Authorization: Basic dGVzdDppbmc=
Host: %HOSTIP:%HTTPPORT
Host: machine.503:%HTTPPORT
Accept: */*
[DISCONNECT]

View File

@@ -24,6 +24,10 @@ Content-Length: 9
contents
</data>
<connect>
HTTP/1.1 200 Mighty fine indeed
</connect>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
@@ -49,7 +53,7 @@ http-proxy
HTTP 1.0 CONNECT with proxytunnel and proxy+host Basic authentication
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p --proxy1.0 %HOSTIP:%PROXYPORT --user iam:myself --proxy-user youare:yourself
http://test.80:%HTTPPORT/we/want/that/page/80 -p --proxy1.0 %HOSTIP:%PROXYPORT --user iam:myself --proxy-user youare:yourself
</command>
</client>
@@ -60,8 +64,8 @@ http://%HOSTIP:%HTTPPORT/we/want/that/page/80 -p --proxy1.0 %HOSTIP:%PROXYPORT -
^User-Agent:.*
</strip>
<proxy>
CONNECT %HOSTIP:%HTTPPORT HTTP/1.0
Host: %HOSTIP:%HTTPPORT
CONNECT test.80:%HTTPPORT HTTP/1.0
Host: test.80:%HTTPPORT
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
Proxy-Connection: Keep-Alive
@@ -71,7 +75,7 @@ Proxy-Connection: Keep-Alive
GET /we/want/that/page/80 HTTP/1.1
Authorization: Basic aWFtOm15c2VsZg==
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: test.80:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -21,6 +21,10 @@ Content-Length: 9
contents
</data>
<connect>
HTTP/1.1 200 Mighty fine indeed
</connect>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
@@ -46,7 +50,7 @@ http-proxy
HTTP over proxy-tunnel with site authentication
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%PROXYPORT --user iam:myself
http://test.83:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%PROXYPORT --user iam:myself
</command>
</client>
@@ -57,9 +61,9 @@ http://%HOSTIP:%HTTPPORT/we/want/that/page/83 -p -x %HOSTIP:%PROXYPORT --user ia
^User-Agent:.*
</strip>
<proxy>
CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
CONNECT test.83:%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
Host: %HOSTIP:%HTTPPORT
Host: test.83:%HTTPPORT
Proxy-Connection: Keep-Alive
</proxy>
@@ -67,7 +71,7 @@ Proxy-Connection: Keep-Alive
GET /we/want/that/page/83 HTTP/1.1
Authorization: Basic aWFtOm15c2VsZg==
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: test.83:%HTTPPORT
Accept: */*
</protocol>

View File

@@ -11,14 +11,14 @@ FAILURE
#
# Server-side
<reply>
<data nocheck="yes">
<connect nocheck="yes">
HTTP/1.1 407 Needs proxy authentication
Server: test-server/fake swsclose yesyes
Proxy-Authenticate: Basic "oh please"
Connection: close
bing
</data>
</connect>
</reply>
#

View File

@@ -21,6 +21,10 @@ Content-Length: 9
contents
</data>
<connect>
HTTP/1.1 200 Mighty fine indeed
</connect>
<datacheck>
HTTP/1.1 200 Mighty fine indeed
@@ -46,7 +50,7 @@ http-proxy
HTTP over proxytunnel using POST
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%PROXYPORT -d "datatopost=ohthatsfunyesyes"
http://test.95:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%PROXYPORT -d "datatopost=ohthatsfunyesyes"
</command>
</client>
@@ -57,16 +61,16 @@ http://%HOSTIP:%HTTPPORT/we/want/that/page/95 -p -x %HOSTIP:%PROXYPORT -d "datat
^User-Agent:.*
</strip>
<proxy>
CONNECT %HOSTIP:%HTTPPORT HTTP/1.1
CONNECT test.95:%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
Host: %HOSTIP:%HTTPPORT
Host: test.95:%HTTPPORT
Proxy-Connection: Keep-Alive
</proxy>
<protocol nonewline="yes">
POST /we/want/that/page/95 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
Host: %HOSTIP:%HTTPPORT
Host: test.95:%HTTPPORT
Accept: */*
Content-Length: 27
Content-Type: application/x-www-form-urlencoded