issued 1.15
[spider.git] / perl / cluster.pl
index 16a03037af07781172635925a2b88124c51098d7..f0fced78adf0bfc93e47416421c83cb3f50866b8 100755 (executable)
@@ -10,6 +10,8 @@
 # $Id$
 # 
 
+require 5.004;
+
 # make sure that modules are searched in the order local then perl
 BEGIN {
        # root of directory tree for this system
@@ -48,7 +50,7 @@ package main;
 
 @inqueue = ();                                 # the main input queue, an array of hashes
 $systime = 0;                                  # the time now (in seconds)
-$version = "1.13";                             # the version no of the software
+$version = "1.15";                             # the version no of the software
 $starttime = 0;                 # the starting time of the cluster   
  
 # handle disconnections
@@ -89,7 +91,7 @@ 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' || $call == $myalias) && !DXCluster->get_exact($call)) {
+                       if (($user->sort eq 'A' || $call eq $myalias) && !DXCluster->get_exact($call)) {
                                ;
                        } else {
                                if (DXCluster->get($call) || DXChannel->get($call)) {
@@ -98,23 +100,16 @@ sub rec
                                        return;
                                }
                        }
+                       $user->{lang} = $main::lang if !$user->{lang}; # to autoupdate old systems
                } else {
-                       if (DXCluster->get($call) || DXChannel->get($call)) {
+                       if (DXCluster->get($call)) {
                                my $mess = DXM::msg($lang, 'conother', $call);
                                already_conn($conn, $call, $mess);
                                return;
                        }
-               }
-
-               
-               # the user MAY have an SSID if local, but otherwise doesn't
-               $user = DXUser->get($call);
-               if (!defined $user) {
                        $user = DXUser->new($call);
-               } else {
-                       $user->{lang} = $main::lang if !$user->{lang}; # to autoupdate old systems
                }
-               
+
                # is he locked out ?
                if ($user->lockout) {
                        Log('DXCommand', "$call is locked out, disconnected");
@@ -250,15 +245,17 @@ DXM->init();
 # read in command aliases
 CmdAlias->init();
 
-# initialise the protocol engine
-DXProt->init();
-
 # initialise the Geomagnetic data engine
 Geomag->init();
 
 # initial the Spot stuff
 Spot->init();
 
+# initialise the protocol engine
+print "reading in duplicate spot and WWV info ...\n";
+DXProt->init();
+
+
 # put in a DXCluster node for us here so we can add users and take them away
 DXNode->new(0, $mycall, 0, 1, $DXProt::myprot_version);