da58d03ff7
responded with a single status line and no headers nor body. Starting now, a HTTP response on a persistent connection (i.e not set to be closed after the response has been taken care of) must have Content-Length or chunked encoding set, or libcurl will simply assume that there is no body. To my horror I learned that we had no less than 57(!) test cases that did bad HTTP responses like this, and even the test http server (sws) responded badly when queried by the test system if it is the test system. So although the actual fix for the problem was tiny, going through all the newly failing test cases got really painful and boring.
114 lines
2.5 KiB
Plaintext
114 lines
2.5 KiB
Plaintext
<info>
|
|
<keywords>
|
|
HTTP
|
|
HTTP GET
|
|
followlocation
|
|
netrc
|
|
</keywords>
|
|
</info>
|
|
# Server-side
|
|
<reply>
|
|
<data>
|
|
HTTP/1.1 301 This is a weirdo text message swsclose
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Location: http://anotherone.com/2570002
|
|
Connection: close
|
|
|
|
This server reply is for testing a simple Location: following
|
|
|
|
</data>
|
|
<data2>
|
|
HTTP/1.1 302 Followed here fine swsclose
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Location: http://athird.com/2570003
|
|
|
|
If this is received, the location following worked
|
|
|
|
</data2>
|
|
<data3>
|
|
HTTP/1.1 200 Followed here fine swsclose
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Content-Length: 52
|
|
|
|
If this is received, the location following worked
|
|
|
|
</data3>
|
|
<datacheck>
|
|
HTTP/1.1 301 This is a weirdo text message swsclose
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Location: http://anotherone.com/2570002
|
|
Connection: close
|
|
|
|
HTTP/1.1 302 Followed here fine swsclose
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Location: http://athird.com/2570003
|
|
|
|
HTTP/1.1 200 Followed here fine swsclose
|
|
Date: Thu, 09 Nov 2010 14:49:00 GMT
|
|
Server: test-server/fake
|
|
Content-Length: 52
|
|
|
|
If this is received, the location following worked
|
|
|
|
</datacheck>
|
|
</reply>
|
|
|
|
# Client-side
|
|
<client>
|
|
<features>
|
|
netrc_debug
|
|
</features>
|
|
<server>
|
|
http
|
|
</server>
|
|
<name>
|
|
HTTP Location: following with --netrc-optional
|
|
</name>
|
|
<command>
|
|
http://supersite.com/want/257 -L -x http://%HOSTIP:%HTTPPORT --netrc-optional
|
|
</command>
|
|
|
|
# netrc auth for two out of three sites:
|
|
<file name="log/netrc">
|
|
machine supersite.com login user1 password passwd1
|
|
machine anotherone.com login user2 password passwd2
|
|
</file>
|
|
</client>
|
|
|
|
# Verify data after the test has been "shot"
|
|
<verify>
|
|
<strip>
|
|
^User-Agent:.*
|
|
</strip>
|
|
<protocol>
|
|
GET http://supersite.com/want/257 HTTP/1.1
|
|
Authorization: Basic dXNlcjE6cGFzc3dkMQ==
|
|
User-Agent: curl/7.14.0-CVS (i686-pc-linux-gnu) libcurl/7.14.0-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13
|
|
Host: supersite.com
|
|
Pragma: no-cache
|
|
Accept: */*
|
|
Proxy-Connection: Keep-Alive
|
|
|
|
GET http://anotherone.com/2570002 HTTP/1.1
|
|
Authorization: Basic dXNlcjI6cGFzc3dkMg==
|
|
User-Agent: curl/7.14.0-CVS (i686-pc-linux-gnu) libcurl/7.14.0-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13
|
|
Host: anotherone.com
|
|
Pragma: no-cache
|
|
Accept: */*
|
|
Proxy-Connection: Keep-Alive
|
|
|
|
GET http://athird.com/2570003 HTTP/1.1
|
|
User-Agent: curl/7.14.0-CVS (i686-pc-linux-gnu) libcurl/7.14.0-CVS OpenSSL/0.9.7e zlib/1.2.2 libidn/0.5.13
|
|
Host: athird.com
|
|
Pragma: no-cache
|
|
Accept: */*
|
|
Proxy-Connection: Keep-Alive
|
|
|
|
</protocol>
|
|
</verify>
|