X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=8dc14ed8a8b0625f613bd359645287c239ad9842;hb=fa18779239db0812846a1bb383359d7eab272697;hp=5e5d18f3e65271bf991ee1f05185ebb15f6060e7;hpb=f3adc82a0299652d929b73c718127fa38571eec5;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 5e5d18f3..8dc14ed8 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -20,9 +20,6 @@ BEGIN { unshift @INC, "$root/perl"; # this IS the right way round! unshift @INC, "$root/local"; - -# require Exporter; -# $Exporter::Verbose = 1; } use Msg; @@ -44,13 +41,15 @@ use Prefix; use Bands; use Geomag; use CmdAlias; +use Local; + use Carp; package main; @inqueue = (); # the main input queue, an array of hashes $systime = 0; # the time now (in seconds) -$version = "1.17"; # the version no of the software +$version = "1.21"; # the version no of the software $starttime = 0; # the starting time of the cluster # handle disconnections @@ -141,6 +140,12 @@ sub login sub cease { my $dxchan; + + eval { + Local::finish(); # end local processing + }; + dbg('local', "Local::finish error $@") if $@; + foreach $dxchan (DXChannel->get_all()) { disconnect($dxchan) unless $dxchan == $DXProt::me; } @@ -261,14 +266,23 @@ 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"; +print "reading existing message headers ...\n"; DXMsg->init(); DXMsg::clean_old(); # read in any cron jobs -print "reading cron jobs\n"; +print "reading cron jobs ...\n"; DXCron->init(); +# starting local stuff +print "doing local initialisation ...\n"; +eval { + Local::init(); +}; +dbg('local', "Local::init error $@") if $@; + + + # print various flags #print "useful info - \$^D: $^D \$^W: $^W \$^S: $^S \$^P: $^P\n"; @@ -289,6 +303,10 @@ for (;;) { DXCommandmode::process(); # process ongoing command mode stuff DXProt::process(); # process ongoing ak1a pcxx stuff DXConnect::process(); + eval { + Local::process(); # do any localised processing + }; + dbg('local', "Local::process error $@") if $@; } if ($decease) { last if --$decease <= 0;