From 69e82e7383a9ed3bda9c96c705de22945294eb8d Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 13 Nov 2000 09:42:58 +0000 Subject: changed pid stuff, made it work with rfc1867 posts and made it work better on paths --- tests/httpserver.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'tests/httpserver.pl') diff --git a/tests/httpserver.pl b/tests/httpserver.pl index 0fd0bc374..86ca02fa6 100755 --- a/tests/httpserver.pl +++ b/tests/httpserver.pl @@ -18,7 +18,7 @@ listen(Server,SOMAXCONN) || die "listen: $!"; logmsg "server started on port $port"; -open(PID, ">log/server.pid"); +open(PID, ">.server.pid"); print PID $$; close(PID); @@ -45,6 +45,7 @@ for ( $waitedpid = 0; # this code is forked and run spawn sub { + my ($request, $path, $ver, $left, $cl); while() { if($_ =~ /(GET|POST|HEAD) (.*) HTTP\/1.(\d)/) { $request=$1; @@ -54,15 +55,19 @@ for ( $waitedpid = 0; elsif($_ =~ /^Content-Length: (\d*)/) { $cl=$1; } - # print "RCV: $_"; push @headers, $_; if($left > 0) { $left -= length($_); + if($left == 0) { + $left = -1; # just to force a loop break here + } } + # print STDERR "RCV ($left): $_"; - if(($_ eq "\r\n") or ($_ eq "")) { + if(!$left && + ($_ eq "\r\n") or ($_ eq "")) { if($request eq "POST") { $left=$cl; } @@ -80,7 +85,7 @@ for ( $waitedpid = 0; # test number that this server will use to know what # contents to pass back to the client # - if($path =~ /^\/(\d*)/) { + if($path =~ /.*\/(\d*)/) { $testnum=$1; } else { -- cgit v1.2.3