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 Wed Mar 10 22:51:09 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 Wed Mar 10 22:51:09 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 { @@ -499,6 +497,7 @@ #------------------------------------------------------------------# +Pushare::Util::standby(); if (($pid_client=fork) == 0) { client(); }