aboutsummaryrefslogtreecommitdiff
path: root/tests/server/sws.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2006-11-25 13:32:04 +0000
committerDaniel Stenberg <daniel@haxx.se>2006-11-25 13:32:04 +0000
commitda58d03ff7be9fc5e0219d95ce2f9932e2272473 (patch)
tree8d2c198822b1642ac20c3cc7b387cd24e1bb4970 /tests/server/sws.c
parent9ea3831c08fab5b320e381b1552964ff789316c7 (diff)
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.
Diffstat (limited to 'tests/server/sws.c')
-rw-r--r--tests/server/sws.c9
1 files changed, 7 insertions, 2 deletions
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: