X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=320ed037b6a3f822e5aab6ea8d2218a41fc2cd41;hb=fdc49835d7dc5573453567bd41e52c5e580ad8e7;hp=5c53e113d0e8dbc02907e6e055f334d6df03bc4b;hpb=df3ec97bdbac858d3ba8cc1d78e8bd0bb4f6ea84;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 5c53e113..320ed037 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -69,6 +69,7 @@ use DXDb; use DXHash; use DXDupe; use Prefix; +use Spot; use Bands; use Keps; use Minimuf; @@ -81,6 +82,9 @@ use BBS; use WCY; use BadWords; use Timer; +use Route; +use Route::Node; +use Route::User; use Data::Dumper; use IO::File; @@ -99,7 +103,7 @@ use vars qw(@inqueue $systime $version $starttime $lockfn @outstanding_connects @inqueue = (); # the main input queue, an array of hashes $systime = 0; # the time now (in seconds) -$version = "1.47"; # the version no of the software +$version = "1.48"; # the version no of the software $starttime = 0; # the starting time of the cluster #@outstanding_connects = (); # list of outstanding connects @listeners = (); # list of listeners @@ -109,7 +113,8 @@ $starttime = 0; # the starting time of the cluster sub already_conn { my ($conn, $call, $mess) = @_; - + + $conn->disable_read(1); dbg('chan', "-> D $call $mess\n"); $conn->send_now("D$call|$mess"); sleep(2); @@ -146,7 +151,7 @@ sub new_channel ; } else { if (my $ref = DXCluster->get_exact($call)) { - my $mess = DXM::msg($lang, 'concluster', $call, $ref->mynode->call); + my $mess = DXM::msg($lang, 'concluster', $call, $ref->mynode->dxchancall); already_conn($conn, $call, $mess); return; } @@ -154,7 +159,7 @@ sub new_channel $user->{lang} = $main::lang if !$user->{lang}; # to autoupdate old systems } else { if (my $ref = DXCluster->get_exact($call)) { - my $mess = DXM::msg($lang, 'concluster', $call, $ref->mynode->call); + my $mess = DXM::msg($lang, 'concluster', $call, $ref->mynode->dxchancall); already_conn($conn, $call, $mess); return; } @@ -206,8 +211,10 @@ sub cease { my $dxchan; - $SIG{'TERM'} = 'IGNORE'; - $SIG{'INT'} = 'IGNORE'; + unless ($is_win) { + $SIG{'TERM'} = 'IGNORE'; + $SIG{'INT'} = 'IGNORE'; + } DXUser::sync; @@ -386,11 +393,11 @@ AGWrestart(); dbg('err', "load badwords: " . (BadWords::load or "Ok")); # prime some signals +unless ($DB::VERSION) { + $SIG{INT} = $SIG{TERM} = sub { $decease = 1 }; +} + unless ($is_win) { - unless ($DB::VERSION) { - $SIG{INT} = \&cease; - $SIG{TERM} = \&cease; - } $SIG{HUP} = 'IGNORE'; $SIG{CHLD} = sub { $zombies++ }; @@ -426,6 +433,7 @@ Spot->init(); # initialise the protocol engine dbg('err', "reading in duplicate spot and WWV info ..."); +Route::Node::init($mycall, $version); DXProt->init(); # put in a DXCluster node for us here so we can add users and take them away