diff -Nru pushare-0.1b1/Pushare/Util.pm pushare/Pushare/Util.pm --- pushare-0.1b1/Pushare/Util.pm Wed Mar 10 19:56:38 2004 +++ pushare/Pushare/Util.pm Mon Mar 15 17:29:32 2004 @@ -15,17 +15,16 @@ $lock = $Pushare::Config::lock; $PI = 3.1415926535; +sub standby() { + open LOCK, "> $lock" or die "$lock: open failed. $!"; +} + sub lock(;$) { - if ($^O ne "cygwin") { - open LOCK, "> $lock" or die "$lock: open failed. $!"; - flock LOCK, 002; - } + flock LOCK, 002; } sub unlock() { - if ($^O ne "cygwin") { - close LOCK; - } + flock LOCK, 010; } sub addDist($$) { diff -Nru pushare-0.1b1/pushare.pl pushare/pushare.pl --- pushare-0.1b1/pushare.pl Wed Mar 10 19:56:38 2004 +++ pushare/pushare.pl Mon Mar 15 17:29:32 2004 @@ -130,7 +130,7 @@ $SIG{ALRM} = sub { die "$remote_addr: server timeout" }; # parse HTTP request - my($str_request, $http_referer, $http_user_agent) = ("", "", ""); + my($str_request, $http_user_agent) = ("", ""); alarm $timeout; while () { s/[\n|\r]//g; @@ -148,9 +148,6 @@ } elsif (/^Range:\s*bytes\s*=\s*(\d+)\s*-/) { $range = $1; - } elsif (/^Referer:\s+/i) { - $http_referer = $'; - } elsif (/^User-Agent:\s+/i) { $http_user_agent = $'; @@ -178,7 +175,7 @@ # output logs my $date = localtime; - dprint "$remote_addr<>$date<>$str_request<>$http_referer<>$http_user_agent"; + dprint "$remote_addr<>$date<>$str_request<>$http_user_agent"; if ($request_method eq "OPTIONS") { printHeader("200 OK"); @@ -225,6 +222,7 @@ if (defined $range) { my $all = $size; $size -= $range; + seek IN, $range, 00; printHeader("206 Partial content"); print "Content-Range: bytes $range-" . ($all-1) . "/$all\r\n"; } else { @@ -428,15 +426,16 @@ } if ((time - $time{join}) >= $Pushare::Config::joinfrec * 60) { client_save(%time); + $time{join} = time; my @node = Pushare::NodeList::all(); foreach (@node) { my $n = $_->toString(); Pushare::NodeList::join($_); } - $time{join} = time; dprint "join"; } if ((time - $time{dist}) >= $Pushare::Config::distfrec * 60) { + $time{dist} = time; client_save(%time); my @file = glob("$cachedir/*.dat"); return unless (@file); @@ -499,6 +498,7 @@ #------------------------------------------------------------------# +Pushare::Util::standby(); if (($pid_client=fork) == 0) { client(); }