aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2003-07-01 15:21:42 +0000
committerDaniel Stenberg <daniel@haxx.se>2003-07-01 15:21:42 +0000
commit7968e3c2de56b035081f30ddcc9b60be2d75f396 (patch)
tree4d8fe500e106c2e0729301dd3268eb60c6367d3c
parent964a41c75c3f83a59e205a1b5908790a542281fa (diff)
David Byron's patch that allows a client to make the server quit with a
magic url.
-rw-r--r--tests/server/sws.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/server/sws.c b/tests/server/sws.c
index 07b37a25f..b798a682b 100644
--- a/tests/server/sws.c
+++ b/tests/server/sws.c
@@ -71,6 +71,7 @@ spitout(FILE *stream,
#define TEST_DATA_PATH "data/test%d"
enum {
+ DOCNUMBER_QUIT = -6,
DOCNUMBER_BADCONNECT = -5,
DOCNUMBER_INTERNAL= -4,
DOCNUMBER_CONNECT = -3,
@@ -78,6 +79,12 @@ enum {
DOCNUMBER_404 = -1
};
+
+/* sent as reply to a QUIT */
+static const char *docquit =
+"HTTP/1.1 200 Goodbye\r\n"
+"\r\n";
+
/* sent as reply to a CONNECT */
static const char *docconnect =
"HTTP/1.1 200 Mighty fine indeed\r\n"
@@ -279,6 +286,11 @@ static int get_request(int sock, int *part)
return DOCNUMBER_WERULEZ;
}
+ if(!strncmp("/quit", ptr, 15)) {
+ logmsg("Request-to-quit received");
+ return DOCNUMBER_QUIT;
+ }
+
ptr++; /* skip the slash */
test_no = strtol(ptr, &ptr, 10);
@@ -353,6 +365,10 @@ static int send_doc(int sock, int doc, int part_no)
if(doc < 0) {
switch(doc) {
+ case DOCNUMBER_QUIT:
+ logmsg("Replying to QUIT");
+ buffer = docquit;
+ break;
case DOCNUMBER_WERULEZ:
/* we got a "friends?" question, reply back that we sure are */
logmsg("Identifying ourselves as friends");
@@ -544,6 +560,9 @@ int main(int argc, char *argv[])
logmsg("Closing client connection");
close(msgsock);
+
+ if (doc == DOCNUMBER_QUIT)
+ break;
}
close(sock);