aboutsummaryrefslogtreecommitdiff
path: root/tests/httpserver.pl
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2000-11-13 09:42:58 +0000
committerDaniel Stenberg <daniel@haxx.se>2000-11-13 09:42:58 +0000
commit69e82e7383a9ed3bda9c96c705de22945294eb8d (patch)
tree7e680864de5f0ac534c0934a2c2c371a5eaf4da8 /tests/httpserver.pl
parentb2daec2477efa873ecf107a53b95250c0a4d57dd (diff)
changed pid stuff, made it work with rfc1867 posts and made it work better
on paths
Diffstat (limited to 'tests/httpserver.pl')
-rwxr-xr-xtests/httpserver.pl13
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 {