upissued version no
[spider.git] / perl / cluster.pl
index 666f4f87fd0b59d0b167b297f3ef11cbec3d454c..1eb8207806716033fbb16e9014b7e4fa9fd68d21 100755 (executable)
@@ -48,7 +48,7 @@ package main;
 
 @inqueue = ();                                 # the main input queue, an array of hashes
 $systime = 0;                                  # the time now (in seconds)
-$version = 1.5;                                        # the version no of the software
+$version = 1.9;                                        # the version no of the software
 $starttime = 0;                 # the starting time of the cluster   
  
 # handle disconnections
@@ -85,8 +85,12 @@ sub rec
                        return;
                }
                
-               # is there one already connected elsewhere in the cluster?
-               if (DXCluster->get($call)) {
+               # is there one already connected elsewhere in the cluster (and not a cluster)
+               my $user = DXUser->get($call);
+               if ($user && $user->sort eq 'A' && !DXCluster->get_exact($call)) {
+                       ;
+               } elsif (($call eq $main::myalias && DXCluster->get_exact($call)) ||
+                   DXCluster->get($call)) {
                        my $mess = DXM::msg($lang, 'concluster', $call);
                        dbg('chan', "-> D $call $mess\n"); 
                        $conn->send_now("D$call|$mess");
@@ -96,6 +100,7 @@ sub rec
                        return;
                }
                
+               # the user MAY have an SSID if local, but otherwise doesn't
                my $user = DXUser->get($call);
                if (!defined $user) {
                        $user = DXUser->new($call);