X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=aa44006786c5d382925d10e45cb324f0ca162766;hb=9995de8c1bfcb9ed980ab0ef12e4d66564c04105;hp=d3ab1871c438c6ed2f3a1e5adcff97d9c5733edf;hpb=19f68ea69f734f50b46fba21aab99315d5803e09;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index d3ab1871..aa440067 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -58,12 +58,15 @@ use Bands; use Geomag; use CmdAlias; use Filter; -use Local; use DXDb; -use Data::Dumper; +use AnnTalk; +use WCY; +use Data::Dumper; use Fcntl ':flock'; +use Local; + package main; @inqueue = (); # the main input queue, an array of hashes @@ -117,18 +120,18 @@ sub rec # is there one already connected to me - locally? my $user = DXUser->get($call); if (DXChannel->get($call)) { - my $mess = DXM::msg($lang, ($user && $user->sort eq 'A') ? 'concluster' : 'conother', $call); + my $mess = DXM::msg($lang, ($user && $user->is_node) ? 'concluster' : 'conother', $call); already_conn($conn, $call, $mess); return; } # is there one already connected elsewhere in the cluster? if ($user) { - if (($user->sort eq 'A' || $call eq $myalias) && !DXCluster->get_exact($call)) { + if (($user->is_node || $call eq $myalias) && !DXCluster->get_exact($call)) { ; } else { if (DXCluster->get_exact($call)) { - my $mess = DXM::msg($lang, $user->sort eq 'A' ? 'concluster' : 'conother', $call); + my $mess = DXM::msg($lang, $user->is_node ? 'concluster' : 'conother', $call); already_conn($conn, $call, $mess); return; } @@ -151,9 +154,9 @@ sub rec } # create the channel - $dxchan = DXCommandmode->new($call, $conn, $user) if ($user->sort eq 'U'); - $dxchan = DXProt->new($call, $conn, $user) if ($user->sort eq 'A'); - $dxchan = BBS->new($call, $conn, $user) if ($user->sort eq 'B'); + $dxchan = DXCommandmode->new($call, $conn, $user) if $user->is_user; + $dxchan = DXProt->new($call, $conn, $user) if $user->is_node; + $dxchan = BBS->new($call, $conn, $user) if $user->is_bbs; die "Invalid sort of user on $call = $sort" if !$dxchan; } @@ -186,7 +189,7 @@ sub cease # disconnect nodes foreach $dxchan (DXChannel->get_all()) { - next unless $dxchan->is_ak1a; + next unless $dxchan->is_node; disconnect($dxchan) unless $dxchan == $DXProt::me; } Msg->event_loop(1, 0.05); @@ -198,7 +201,7 @@ sub cease # disconnect users foreach $dxchan (DXChannel->get_all()) { - next if $dxchan->is_ak1a; + next if $dxchan->is_node; disconnect($dxchan) unless $dxchan == $DXProt::me; } Msg->event_loop(1, 0.05); @@ -238,7 +241,7 @@ sub process_inqueue my $data = $self->{data}; my $dxchan = $self->{dxchan}; - my ($sort, $call, $line) = $data =~ /^(\w)([A-Z0-9\-]+)\|(.*)$/; + my ($sort, $call, $line) = $data =~ /^(\w)([^\|]+)\|(.*)$/; my $error; # the above regexp must work @@ -331,6 +334,7 @@ CmdAlias->init(); # initialise the Geomagnetic data engine Geomag->init(); +WCY->init(); # initial the Spot stuff Spot->init();