X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=0a66c1db5732a6a2448526ee77d237a734a96026;hb=e39b738850b9a122b60b179e9723e546ddacfd62;hp=b4cfc4823fd01f9d62691cdceb55ec11d6663a20;hpb=c644e2f01b7528fb3cd4666a552a5ee282462e88;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index b4cfc482..0a66c1db 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -36,6 +36,9 @@ BEGIN { open(CLLOCK, ">$lockfn") or die "Can't open Lockfile ($lockfn) $!"; print CLLOCK "$$\n"; close CLLOCK; + + $is_win = ($^O =~ /^MS/ || $^O =~ /^OS-2/) ? 1 : 0; # is it Windows? + $systime = time; } use Msg; @@ -79,7 +82,7 @@ package main; use strict; use vars qw(@inqueue $systime $version $starttime $lockfn @outstanding_connects $zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr - $clusterport $mycall $decease $build + $clusterport $mycall $decease $build $is_win ); @inqueue = (); # the main input queue, an array of hashes @@ -301,6 +304,12 @@ sub uptime my $mins = int $t / 60; return sprintf "%d %02d:%02d", $days, $hours, $mins; } + +sub AGWrestart +{ + AGWMsg::init(\&new_channel); +} + ############################################################# # # The start of the main line of code @@ -368,13 +377,13 @@ for (@main::listen) { push @listeners, $conn; dbg('err', "External Port: $_->[0] $_->[1]"); } -AGWMsg::init(\&new_channel); +AGWrestart(); # load bad words dbg('err', "load badwords: " . (BadWords::load or "Ok")); # prime some signals -unless ($^O =~ /^MS/) { +unless ($is_win) { unless ($DB::VERSION) { $SIG{INT} = \&cease; $SIG{TERM} = \&cease; @@ -467,7 +476,8 @@ for (;;) { DXDb::process(); DXUser::process(); DXDupe::process(); - + AGWMsg::process(); + eval { Local::process(); # do any localised processing };