put duplicate checking into respective modules and out of DXProt.
[spider.git] / perl / cluster.pl
index 54295e4b7beaaec871a50d39187319f5ffd6aeaf..be8380c1df0525c18ab69eb6b6d12b274c235344 100755 (executable)
@@ -58,19 +58,19 @@ use Bands;
 use Geomag;
 use CmdAlias;
 use Filter;
-use Local;
 use DXDb;
-use Data::Dumper;
+use AnnTalk;
 
+use Data::Dumper;
 use Fcntl ':flock'; 
 
-use Carp qw(cluck);
+use Local;
 
 package main;
 
 @inqueue = ();                                 # the main input queue, an array of hashes
 $systime = 0;                                  # the time now (in seconds)
-$version = "1.40";                             # the version no of the software
+$version = "1.41";                             # the version no of the software
 $starttime = 0;                 # the starting time of the cluster   
 $lockfn = "cluster.lock";       # lock file name
 @outstanding_connects = ();     # list of outstanding connects
@@ -240,7 +240,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
@@ -301,22 +301,22 @@ STDOUT->autoflush(1);
 Log('cluster', "DXSpider V$version started");
 
 # banner
-print "DXSpider DX Cluster Version $version\nCopyright (c) 1998-1999 Dirk Koopman G1TLH\n";
+dbg('err', "DXSpider DX Cluster Version $version", "Copyright (c) 1998-2000 Dirk Koopman G1TLH");
 
 # load Prefixes
-print "loading prefixes ...\n";
+dbg('err', "loading prefixes ...");
 Prefix::load();
 
 # load band data
-print "loading band data ...\n";
+dbg('err', "loading band data ...");
 Bands::load();
 
 # initialise User file system
-print "loading user file system ...\n"
+dbg('err', "loading user file system ...")
 DXUser->init($userfn, 1);
 
 # start listening for incoming messages/connects
-print "starting listener ...\n";
+dbg('err', "starting listener ...");
 Msg->new_server("$clusteraddr", $clusterport, \&login);
 
 # prime some signals
@@ -338,7 +338,7 @@ Geomag->init();
 Spot->init();
 
 # initialise the protocol engine
-print "reading in duplicate spot and WWV info ...\n";
+dbg('err', "reading in duplicate spot and WWV info ...");
 DXProt->init();
 
 
@@ -346,42 +346,41 @@ DXProt->init();
 DXNode->new(0, $mycall, 0, 1, $DXProt::myprot_version); 
 
 # read in any existing message headers and clean out old crap
-print "reading existing message headers ...\n";
+dbg('err', "reading existing message headers ...");
 DXMsg->init();
 DXMsg::clean_old();
 
 # read in any cron jobs
-print "reading cron jobs ...\n";
+dbg('err', "reading cron jobs ...");
 DXCron->init();
 
 # read in database descriptors
-print "reading database descriptors ...\n";
+dbg('err', "reading database descriptors ...");
 DXDb::load();
 
 # starting local stuff
-print "doing local initialisation ...\n";
+dbg('err', "doing local initialisation ...");
 eval {
        Local::init();
 };
 dbg('local', "Local::init error $@") if $@;
 
 # print various flags
-#print "useful info - \$^D: $^D \$^W: $^W \$^S: $^S \$^P: $^P\n";
+#dbg('err', "seful info - \$^D: $^D \$^W: $^W \$^S: $^S \$^P: $^P");
 
 # this, such as it is, is the main loop!
-print "orft we jolly well go ...\n";
-dbg('chan', "DXSpider version $version started...");
+dbg('err', "orft we jolly well go ...");
 
-open(DB::OUT, "|tee /tmp/aa");
+#open(DB::OUT, "|tee /tmp/aa");
 
 for (;;) {
        my $timenow;
-       $DB::trace = 1;
+#      $DB::trace = 1;
        
        Msg->event_loop(1, 0.1);
        $timenow = time;
        process_inqueue();                      # read in lines from the input queue and despatch them
-       $DB::trace = 0;
+#      $DB::trace = 0;
        
        # do timed stuff, ongoing processing happens one a second
        if ($timenow != $systime) {