X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=16a03037af07781172635925a2b88124c51098d7;hb=c66d28ace3e5bf4b9fa20256425d7d1416e7d8c5;hp=73cb401a63150b29d854f688ff5defe64e30a96a;hpb=7a64dbf69ead057f2fd3fef1df05e30cef339485;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 73cb401a..16a03037 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -48,7 +48,7 @@ package main; @inqueue = (); # the main input queue, an array of hashes $systime = 0; # the time now (in seconds) -$version = "1.12"; # the version no of the software +$version = "1.13"; # the version no of the software $starttime = 0; # the starting time of the cluster # handle disconnections @@ -89,19 +89,17 @@ sub rec # is there one already connected elsewhere in the cluster (and not a cluster) my $user = DXUser->get($call); if ($user) { - if ($user->sort eq 'A' && !DXCluster->get_exact($call)) { - ; - } elsif ($user->sort eq 'U' && $call eq $main::myalias && !DXCluster->get_exact($call)) { + if (($user->sort eq 'A' || $call == $myalias) && !DXCluster->get_exact($call)) { ; } else { - if (DXChannel->get($call)) { + if (DXCluster->get($call) || DXChannel->get($call)) { my $mess = DXM::msg($lang, $user->sort eq 'A' ? 'concluster' : 'conother', $call); already_conn($conn, $call, $mess); return; } } } else { - if (DXChannel->get($call)) { + if (DXCluster->get($call) || DXChannel->get($call)) { my $mess = DXM::msg($lang, 'conother', $call); already_conn($conn, $call, $mess); return; @@ -110,7 +108,7 @@ sub rec # the user MAY have an SSID if local, but otherwise doesn't - my $user = DXUser->get($call); + $user = DXUser->get($call); if (!defined $user) { $user = DXUser->new($call); } else { @@ -149,7 +147,7 @@ sub cease { my $dxchan; foreach $dxchan (DXChannel->get_all()) { - disconnect($dxchan); + disconnect($dxchan) unless $dxchan == $DXProt::me; } Log('cluster', "DXSpider V$version stopped"); exit(0);