aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES13
-rw-r--r--RELEASE-NOTES4
-rw-r--r--lib/transfer.c12
-rw-r--r--tests/data/test112
-rw-r--r--tests/data/test1502
-rw-r--r--tests/data/test1532
-rw-r--r--tests/data/test1552
-rw-r--r--tests/data/test1592
-rw-r--r--tests/data/test1631
-rw-r--r--tests/data/test1661
-rw-r--r--tests/data/test1672
-rw-r--r--tests/data/test1682
-rw-r--r--tests/data/test1731
-rw-r--r--tests/data/test1741
-rw-r--r--tests/data/test1752
-rw-r--r--tests/data/test1762
-rw-r--r--tests/data/test1861
-rw-r--r--tests/data/test1872
-rw-r--r--tests/data/test2332
-rw-r--r--tests/data/test2342
-rw-r--r--tests/data/test2394
-rw-r--r--tests/data/test2434
-rw-r--r--tests/data/test2572
-rw-r--r--tests/data/test262
-rw-r--r--tests/data/test2641
-rw-r--r--tests/data/test2672
-rw-r--r--tests/data/test271
-rw-r--r--tests/data/test2732
-rw-r--r--tests/data/test2762
-rw-r--r--tests/data/test2771
-rw-r--r--tests/data/test2781
-rw-r--r--tests/data/test2791
-rw-r--r--tests/data/test282
-rw-r--r--tests/data/test2812
-rw-r--r--tests/data/test28243
-rw-r--r--tests/data/test432
-rw-r--r--tests/data/test442
-rw-r--r--tests/data/test452
-rw-r--r--tests/data/test5153
-rw-r--r--tests/data/test5163
-rw-r--r--tests/data/test562
-rw-r--r--tests/data/test592
-rw-r--r--tests/data/test622
-rw-r--r--tests/data/test631
-rw-r--r--tests/data/test644
-rw-r--r--tests/data/test672
-rw-r--r--tests/data/test694
-rw-r--r--tests/data/test711
-rw-r--r--tests/data/test731
-rw-r--r--tests/data/test792
-rw-r--r--tests/data/test802
-rw-r--r--tests/data/test812
-rw-r--r--tests/data/test832
-rw-r--r--tests/data/test842
-rw-r--r--tests/data/test851
-rw-r--r--tests/data/test892
-rw-r--r--tests/data/test92
-rw-r--r--tests/data/test906
-rw-r--r--tests/data/test912
-rw-r--r--tests/data/test952
-rw-r--r--tests/server/sws.c9
61 files changed, 174 insertions, 19 deletions
diff --git a/CHANGES b/CHANGES
index 080ffed0b..c19e62b96 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,19 @@
Changelog
+Daniel (25 November 2006)
+- Venkat Akella found out that libcurl did not like HTTP responses that simply
+ 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.
+
Daniel (24 November 2006)
- James Housley did lots of work and introduced SFTP downloads.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 31fb48e3c..5bccf5cde 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -23,6 +23,8 @@ This release includes the following bugfixes:
o SIGSEGV when disconnecting on a transfer on a re-used handle when the
host name didn't resolve
o stack overwrite on 64bit Windows in the chunked decoding department
+ o HTTP responses on persistent connections without Content-Length nor chunked
+ encoding are now considered to be without response body
Other curl-related news:
@@ -38,6 +40,6 @@ This release would not have looked like this without help, code, reports and
advice from friends like these:
James Housley, Olaf Stueben, Yang Tse, Gisle Vanem, Bradford Bruce,
- Ciprian Badescu, Dmitriy Sergeyev, Nir Soffer
+ Ciprian Badescu, Dmitriy Sergeyev, Nir Soffer, Venkat Akella
Thanks! (and sorry if I forgot to mention someone)
diff --git a/lib/transfer.c b/lib/transfer.c
index 2d5d0dfe8..6b7b81978 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -501,9 +501,19 @@ CURLcode Curl_readwrite(struct connectdata *conn,
k->keepon |= KEEP_WRITE;
}
}
- else
+ else {
k->header = FALSE; /* no more header to parse! */
+ if((k->size == -1) && !conn->bits.chunk && !conn->bits.close)
+ /* When connection is not to get closed, but no
+ Content-Length nor Content-Encoding chunked have been
+ received, there is no body in this response. We don't set
+ stop_reading TRUE since that would also prevent necessary
+ authentication actions to take place. */
+ conn->bits.no_body = TRUE;
+
+ }
+
if (417 == k->httpcode) {
/*
* we got: "417 Expectation Failed" this means:
diff --git a/tests/data/test11 b/tests/data/test11
index e34a36646..84baa9076 100644
--- a/tests/data/test11
+++ b/tests/data/test11
@@ -21,6 +21,7 @@ This server reply is for testing a simple Location: following
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
@@ -35,6 +36,7 @@ Connection: close
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
diff --git a/tests/data/test150 b/tests/data/test150
index 7ae812d93..60e6b912d 100644
--- a/tests/data/test150
+++ b/tests/data/test150
@@ -21,6 +21,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -35,6 +36,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test153 b/tests/data/test153
index 1fd54a1f9..51137b38f 100644
--- a/tests/data/test153
+++ b/tests/data/test153
@@ -6,6 +6,7 @@ HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
This is not the real page
</data1>
@@ -95,6 +96,7 @@ HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
HTTP/1.1 200 OK
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
diff --git a/tests/data/test155 b/tests/data/test155
index 91ed13abd..871b0267a 100644
--- a/tests/data/test155
+++ b/tests/data/test155
@@ -33,6 +33,7 @@ This is not the real page either!
HTTP/1.1 200 Type-3 Recevied and all Things are fine swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -55,6 +56,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Type-3 Recevied and all Things are fine swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test159 b/tests/data/test159
index 2fcd7d502..8513c3073 100644
--- a/tests/data/test159
+++ b/tests/data/test159
@@ -21,6 +21,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -35,6 +36,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test163 b/tests/data/test163
index c51adfccb..b87504e44 100644
--- a/tests/data/test163
+++ b/tests/data/test163
@@ -4,6 +4,7 @@
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 10
blablabla
</data>
diff --git a/tests/data/test166 b/tests/data/test166
index edc184abf..0e915f9e0 100644
--- a/tests/data/test166
+++ b/tests/data/test166
@@ -4,6 +4,7 @@
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 10
blablabla
</data>
diff --git a/tests/data/test167 b/tests/data/test167
index a23d94ba7..6fa5b1bd3 100644
--- a/tests/data/test167
+++ b/tests/data/test167
@@ -9,6 +9,7 @@ WWW-Authenticate: Digest realm="weirdorealm", nonce="12345"
<data1000>
HTTP/1.1 200 OK swsclose
Server: no
+Content-Length: 15
Nice auth sir!
</data1000>
@@ -19,6 +20,7 @@ WWW-Authenticate: Digest realm="weirdorealm", nonce="12345"
HTTP/1.1 200 OK swsclose
Server: no
+Content-Length: 15
Nice auth sir!
</datacheck>
diff --git a/tests/data/test168 b/tests/data/test168
index dbaf667c9..6f93ebab8 100644
--- a/tests/data/test168
+++ b/tests/data/test168
@@ -20,6 +20,7 @@ you should ignore this data too
<data1001>
HTTP/1.1 200 OK swsclose
Server: no
+Content-Length: 15
Nice auth sir!
</data1001>
@@ -33,6 +34,7 @@ WWW-Authenticate: Digest realm="realmweirdo", nonce="123456"
HTTP/1.1 200 OK swsclose
Server: no
+Content-Length: 15
Nice auth sir!
</datacheck>
diff --git a/tests/data/test173 b/tests/data/test173
index 130fa9e07..0050e5ccc 100644
--- a/tests/data/test173
+++ b/tests/data/test173
@@ -4,6 +4,7 @@
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 11
blablabla
diff --git a/tests/data/test174 b/tests/data/test174
index 32130f1be..b14d39b1c 100644
--- a/tests/data/test174
+++ b/tests/data/test174
@@ -5,6 +5,7 @@ HTTP/1.1 200 beng swsclose
Server: Microsoft-IIS/6.0
Authentication-Info: Passport1.4 tname=MSPAuth,tname=MSPProf,tname=MSPConsent,tname=MSPSecAuth
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
This is not the real page
</data>
diff --git a/tests/data/test175 b/tests/data/test175
index 3a979af98..db8f8a88a 100644
--- a/tests/data/test175
+++ b/tests/data/test175
@@ -13,6 +13,7 @@ This is not the real page
HTTP/1.1 200 moo swsclose
Server: Microsoft-IIS/6.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 16
content for you
</data1>
@@ -26,6 +27,7 @@ Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 moo swsclose
Server: Microsoft-IIS/6.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 16
content for you
</datacheck>
diff --git a/tests/data/test176 b/tests/data/test176
index e7ed3ecbb..f197367d7 100644
--- a/tests/data/test176
+++ b/tests/data/test176
@@ -14,6 +14,7 @@ Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 moo swsclose
Server: Microsoft-IIS/6.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 16
content for you
</data>
@@ -27,6 +28,7 @@ Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 moo swsclose
Server: Microsoft-IIS/6.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 16
content for you
</datacheck>
diff --git a/tests/data/test186 b/tests/data/test186
index e878bca80..763c6c805 100644
--- a/tests/data/test186
+++ b/tests/data/test186
@@ -4,6 +4,7 @@
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 11
blablabla
diff --git a/tests/data/test187 b/tests/data/test187
index 67aace5d1..2919164f5 100644
--- a/tests/data/test187
+++ b/tests/data/test187
@@ -14,6 +14,7 @@ This server reply is for testing a simple Location: following
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
@@ -28,6 +29,7 @@ Connection: close
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
diff --git a/tests/data/test233 b/tests/data/test233
index ca19364be..b11aabbbd 100644
--- a/tests/data/test233
+++ b/tests/data/test233
@@ -28,6 +28,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</data2>
@@ -47,6 +48,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</datacheck>
diff --git a/tests/data/test234 b/tests/data/test234
index 9c7d8c14e..c8775c543 100644
--- a/tests/data/test234
+++ b/tests/data/test234
@@ -19,6 +19,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</data2>
@@ -38,6 +39,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</datacheck>
diff --git a/tests/data/test239 b/tests/data/test239
index 7a789b600..77e7ae296 100644
--- a/tests/data/test239
+++ b/tests/data/test239
@@ -16,7 +16,7 @@ Hey you, authenticate or go away!
HTTP/1.1 200 Things are fine in proxy land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
-Content-Length; 42
+Content-Length: 42
Contents of that page you requested, sir.
</data1002>
@@ -29,7 +29,7 @@ Content-Length: 34
HTTP/1.1 200 Things are fine in proxy land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
-Content-Length; 42
+Content-Length: 42
Contents of that page you requested, sir.
</datacheck>
diff --git a/tests/data/test243 b/tests/data/test243
index f8ef686e7..614dfc0fe 100644
--- a/tests/data/test243
+++ b/tests/data/test243
@@ -36,7 +36,7 @@ Hey you, authenticate or go away!
HTTP/1.1 200 Things are fine in proxy land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
-Content-Length; 42
+Content-Length: 42
Contents of that page you requested, sir.
</data1002>
@@ -57,7 +57,7 @@ Content-Length: 34
HTTP/1.1 200 Things are fine in proxy land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
-Content-Length; 42
+Content-Length: 42
Contents of that page you requested, sir.
</datacheck>
diff --git a/tests/data/test257 b/tests/data/test257
index 5c81409cf..90680f395 100644
--- a/tests/data/test257
+++ b/tests/data/test257
@@ -31,6 +31,7 @@ If this is received, the location following worked
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
@@ -50,6 +51,7 @@ 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
diff --git a/tests/data/test26 b/tests/data/test26
index 01b1bd7f3..f92cf2326 100644
--- a/tests/data/test26
+++ b/tests/data/test26
@@ -7,7 +7,7 @@ HTTP GET
# Server-side
<reply>
<data>
-HTTP/1.1 200 Mooo swsclose
+HTTP/1.0 200 Mooo swsclose
Server: test-server/fake
Connection: close
diff --git a/tests/data/test264 b/tests/data/test264
index 23bd99aa4..55f79b6d2 100644
--- a/tests/data/test264
+++ b/tests/data/test264
@@ -12,6 +12,7 @@ HTTP proxy Basic auth
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Type: text/html
+Content-Length: 26
the content would go here
</data>
diff --git a/tests/data/test267 b/tests/data/test267
index 56d2a0a67..c379d4865 100644
--- a/tests/data/test267
+++ b/tests/data/test267
@@ -28,6 +28,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -42,6 +43,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test27 b/tests/data/test27
index 60a474aef..85b087aab 100644
--- a/tests/data/test27
+++ b/tests/data/test27
@@ -11,6 +11,7 @@ cookies
HTTP/1.1 200 Mooo swsclose
Connection: close
Set-Cookie: path=/; thewinneris=nowayyouwin;
+Content-Length: 8
*flopp*
</data>
diff --git a/tests/data/test273 b/tests/data/test273
index dbc8f8429..6aabfdcbd 100644
--- a/tests/data/test273
+++ b/tests/data/test273
@@ -23,6 +23,7 @@ This is not the real page
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 23
This IS the real page!
</data1000>
@@ -37,6 +38,7 @@ Content-Type: text/html; charset=iso-8859-1
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 23
This IS the real page!
</datacheck>
diff --git a/tests/data/test276 b/tests/data/test276
index 7090ec581..aa56090f4 100644
--- a/tests/data/test276
+++ b/tests/data/test276
@@ -21,6 +21,7 @@ This server reply is for testing a simple Location: following
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
@@ -35,6 +36,7 @@ Connection: close
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
diff --git a/tests/data/test277 b/tests/data/test277
index 1828203be..f19e3423d 100644
--- a/tests/data/test277
+++ b/tests/data/test277
@@ -10,6 +10,7 @@ HTTP FORMPOST
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 11
blablabla
diff --git a/tests/data/test278 b/tests/data/test278
index 77e80456a..795b090ce 100644
--- a/tests/data/test278
+++ b/tests/data/test278
@@ -12,6 +12,7 @@ HTTP proxy Basic auth
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Type: text/html
+Content-Length: 27
the content would go here
</data>
diff --git a/tests/data/test279 b/tests/data/test279
index 716a99ea6..2483e39d2 100644
--- a/tests/data/test279
+++ b/tests/data/test279
@@ -12,6 +12,7 @@ HTTP proxy Basic auth
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Type: text/html
+Content-Length: 27
the content would go here
</data>
diff --git a/tests/data/test28 b/tests/data/test28
index 355924fa6..98d19c59d 100644
--- a/tests/data/test28
+++ b/tests/data/test28
@@ -20,6 +20,7 @@ This server reply is for testing a simple Location: following
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
@@ -34,6 +35,7 @@ Connection: close
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
diff --git a/tests/data/test281 b/tests/data/test281
index ffbebbe66..f228d2d0b 100644
--- a/tests/data/test281
+++ b/tests/data/test281
@@ -50,7 +50,7 @@ Weird
</strip>
<protocol>
PUT /we/want/281 HTTP/1.1
-Host: 127.0.0.1:%HTTPPORT
+Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 38
Expect: 100-continue
diff --git a/tests/data/test282 b/tests/data/test282
new file mode 100644
index 000000000..b15745b18
--- /dev/null
+++ b/tests/data/test282
@@ -0,0 +1,43 @@
+<info>
+<keywords>
+HTTP
+HTTP GET
+</keywords>
+</info>
+
+#
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+
+</data>
+</reply>
+
+#
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP GET with no response body or headers
+ </name>
+ <command>
+http://%HOSTIP:%HTTPPORT/282
+</command>
+</client>
+
+#
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET /282 HTTP/1.1
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+
+</protocol>
+</verify>
diff --git a/tests/data/test43 b/tests/data/test43
index 1ee0e2f89..fe6c54e18 100644
--- a/tests/data/test43
+++ b/tests/data/test43
@@ -22,6 +22,7 @@ This server reply is for testing a simple Location: following
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
@@ -36,6 +37,7 @@ Connection: close
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
diff --git a/tests/data/test44 b/tests/data/test44
index ab66d11c0..beea1cf6e 100644
--- a/tests/data/test44
+++ b/tests/data/test44
@@ -8,7 +8,7 @@ HTTP replaced headers
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK swsclose
+HTTP/1.0 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
diff --git a/tests/data/test45 b/tests/data/test45
index b8d76201d..b8d96f7e6 100644
--- a/tests/data/test45
+++ b/tests/data/test45
@@ -21,6 +21,7 @@ This server reply is for testing a simple Location: following
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
@@ -35,6 +36,7 @@ Connection: close
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
diff --git a/tests/data/test515 b/tests/data/test515
index 566da84f4..c2dd48fe8 100644
--- a/tests/data/test515
+++ b/tests/data/test515
@@ -5,6 +5,7 @@
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 3
OK
</data>
@@ -36,7 +37,7 @@ http://%HOSTIP:%HTTPPORT/515
</strip>
<protocol>
POST /515 HTTP/1.1
-Host: 127.0.0.1:%HTTPPORT
+Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
diff --git a/tests/data/test516 b/tests/data/test516
index cd45b3115..3a8210f22 100644
--- a/tests/data/test516
+++ b/tests/data/test516
@@ -5,6 +5,7 @@
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 3
OK
</data>
@@ -36,7 +37,7 @@ http://%HOSTIP:%HTTPPORT/516
</strip>
<protocol>
POST /516 HTTP/1.1
-Host: 127.0.0.1:%HTTPPORT
+Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 0
diff --git a/tests/data/test56 b/tests/data/test56
index d4f369907..d84b86ddc 100644
--- a/tests/data/test56
+++ b/tests/data/test56
@@ -9,7 +9,7 @@ chunked Transfer-Encoding
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK swsclose
+HTTP/1.0 200 OK swsclose
Funny-head: yesyes
This is the proof it works
diff --git a/tests/data/test59 b/tests/data/test59
index 5e0e694fa..7ea59af86 100644
--- a/tests/data/test59
+++ b/tests/data/test59
@@ -8,7 +8,7 @@ HTTP GET
# Server-side
<reply name="1">
<data>
-HTTP/1.1 200 OK swsclose
+HTTP/1.0 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
diff --git a/tests/data/test62 b/tests/data/test62
index 48eca088e..fd08f7e5f 100644
--- a/tests/data/test62
+++ b/tests/data/test62
@@ -8,7 +8,7 @@ HTTP replaced headers
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK swsclose
+HTTP/1.0 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Type: text/html
diff --git a/tests/data/test63 b/tests/data/test63
index bcd5a188a..179b9e6b8 100644
--- a/tests/data/test63
+++ b/tests/data/test63
@@ -12,6 +12,7 @@ HTTP proxy Basic auth
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Type: text/html
+Content-Length: 26
the content would go here
</data>
diff --git a/tests/data/test64 b/tests/data/test64
index 9521102c7..e2ba87dcd 100644
--- a/tests/data/test64
+++ b/tests/data/test64
@@ -12,6 +12,7 @@ HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
This is not the real page
</data>
@@ -22,6 +23,7 @@ This is not the real page
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 23
This IS the real page!
</data1000>
@@ -31,10 +33,12 @@ HTTP/1.1 401 Authorization Required swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
WWW-Authenticate: Digest realm="testrealm", nonce="1053604145"
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
HTTP/1.1 200 OK swsclose
Server: Apache/1.3.27 (Darwin) PHP/4.1.2
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 23
This IS the real page!
</datacheck>
diff --git a/tests/data/test67 b/tests/data/test67
index da43a7d3a..19aeeec9b 100644
--- a/tests/data/test67
+++ b/tests/data/test67
@@ -28,6 +28,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -42,6 +43,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test69 b/tests/data/test69
index 333ec2c0f..7102342a9 100644
--- a/tests/data/test69
+++ b/tests/data/test69
@@ -14,6 +14,7 @@ WWW-Authenticate: Basic
WWW-Authenticate: Wild-and-crazy
WWW-Authenticate: NTLM
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
This is not the real page
</data>
@@ -36,6 +37,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -47,6 +49,7 @@ WWW-Authenticate: Basic
WWW-Authenticate: Wild-and-crazy
WWW-Authenticate: NTLM
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
HTTP/1.1 401 Now gimme that second request of crap
Server: Microsoft-IIS/5.0
@@ -57,6 +60,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test71 b/tests/data/test71
index 733db358c..baedaab89 100644
--- a/tests/data/test71
+++ b/tests/data/test71
@@ -10,6 +10,7 @@ HTTP FORMPOST
HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
+Content-Length: 11
blablabla
diff --git a/tests/data/test73 b/tests/data/test73
index 516784e05..6e612eec6 100644
--- a/tests/data/test73
+++ b/tests/data/test73
@@ -12,6 +12,7 @@ HTTP/1.1 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Content-Type: text/html
Set-Cookie: IPCZQX01af0fca5c=000010008168c200d25dfc4b; path=/; domain=.NOT_DISCLOSED.se
+Content-Length: 4
boo
</data>
diff --git a/tests/data/test79 b/tests/data/test79
index 6d080bd5d..8954360f0 100644
--- a/tests/data/test79
+++ b/tests/data/test79
@@ -10,7 +10,7 @@ HTTP proxy
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK
+HTTP/1.0 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
diff --git a/tests/data/test80 b/tests/data/test80
index dcf153dd7..41656810b 100644
--- a/tests/data/test80
+++ b/tests/data/test80
@@ -16,6 +16,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</data>
@@ -27,6 +28,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</datacheck>
diff --git a/tests/data/test81 b/tests/data/test81
index 732f9dc6d..eabd9fff7 100644
--- a/tests/data/test81
+++ b/tests/data/test81
@@ -26,6 +26,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -40,6 +41,7 @@ Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test83 b/tests/data/test83
index d68a042be..7c176969f 100644
--- a/tests/data/test83
+++ b/tests/data/test83
@@ -16,6 +16,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</data>
@@ -27,6 +28,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</datacheck>
diff --git a/tests/data/test84 b/tests/data/test84
index 387d0e08e..9d5e678b6 100644
--- a/tests/data/test84
+++ b/tests/data/test84
@@ -10,7 +10,7 @@ HTTP proxy
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK
+HTTP/1.0 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
diff --git a/tests/data/test85 b/tests/data/test85
index 50629e0da..a82110769 100644
--- a/tests/data/test85
+++ b/tests/data/test85
@@ -15,6 +15,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</data>
diff --git a/tests/data/test89 b/tests/data/test89
index 3ed2439db..40b3074f4 100644
--- a/tests/data/test89
+++ b/tests/data/test89
@@ -50,6 +50,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1012>
@@ -75,6 +76,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test9 b/tests/data/test9
index 7476278ec..034a60517 100644
--- a/tests/data/test9
+++ b/tests/data/test9
@@ -8,7 +8,7 @@ HTTP file upload
# Server-side
<reply>
<data>
-HTTP/1.1 200 OK swsclose
+HTTP/1.0 200 OK swsclose
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
diff --git a/tests/data/test90 b/tests/data/test90
index df1bb6943..70e77645e 100644
--- a/tests/data/test90
+++ b/tests/data/test90
@@ -17,6 +17,7 @@ WWW-Authenticate: Basic
WWW-Authenticate: Wild-and-crazy
WWW-Authenticate: NTLM
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
This is not the real page
</data>
@@ -51,6 +52,7 @@ WWW-Authenticate: Basic
WWW-Authenticate: Wild-and-crazy
WWW-Authenticate: NTLM
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
This is not the real page
</data10>
@@ -71,6 +73,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1012>
@@ -82,6 +85,7 @@ WWW-Authenticate: Basic
WWW-Authenticate: Wild-and-crazy
WWW-Authenticate: NTLM
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
HTTP/1.1 401 Now gimme that second request of crap
Server: Microsoft-IIS/5.0
@@ -100,6 +104,7 @@ WWW-Authenticate: Basic
WWW-Authenticate: Wild-and-crazy
WWW-Authenticate: NTLM
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 26
HTTP/1.1 401 Now gimme that second round of crap
Server: Microsoft-IIS/5.0
@@ -110,6 +115,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test91 b/tests/data/test91
index ad0545926..ae64b16ef 100644
--- a/tests/data/test91
+++ b/tests/data/test91
@@ -37,6 +37,7 @@ This is not the real page either!
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</data1002>
@@ -60,6 +61,7 @@ WWW-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAAAGgoEAc51AYVDgyNcAAAAAAAAAAG4Ab
HTTP/1.1 200 Things are fine in server land swsclose
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-8859-1
+Content-Length: 32
Finally, this is the real page!
</datacheck>
diff --git a/tests/data/test95 b/tests/data/test95
index 5a5aebcd3..d2cd2c429 100644
--- a/tests/data/test95
+++ b/tests/data/test95
@@ -14,6 +14,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</data>
@@ -25,6 +26,7 @@ Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Content-Type: text/html
Funny-head: yesyes
+Content-Length: 9
contents
</datacheck>
diff --git a/tests/server/sws.c b/tests/server/sws.c
index 9e63e507c..a2d81c709 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -572,6 +572,9 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
req->open = FALSE;
if(req->testno < 0) {
+ size_t msglen;
+ char msgbuf[64];
+
switch(req->testno) {
case DOCNUMBER_QUIT:
logmsg("Replying to QUIT");
@@ -580,8 +583,10 @@ static int send_doc(curl_socket_t sock, struct httprequest *req)
case DOCNUMBER_WERULEZ:
/* we got a "friends?" question, reply back that we sure are */
logmsg("Identifying ourselves as friends");
- sprintf(weare, "HTTP/1.1 200 OK\r\n\r\nWE ROOLZ: %d\r\n",
- (int)getpid());
+ sprintf(msgbuf, "WE ROOLZ: %d\r\n", (int)getpid());
+ msglen = strlen(msgbuf);
+ sprintf(weare, "HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s",
+ msglen, msgbuf);
buffer = weare;
break;
case DOCNUMBER_INTERNAL: