diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/httpserver.pl | 13 |
1 files changed, 9 insertions, 4 deletions
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(<STDIN>) { 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 { |