X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=37ace021654a4858cab156ab4196e66c083e61e5;hb=b9dffeff7239952814342dad19db3a51def6fab7;hp=003ae845becc11c9f73a8292333bfb91e17748c0;hpb=dc305f992d75a6b35edda9e1aefab510a3ed617e;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 003ae845..37ace021 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -68,7 +68,6 @@ use DXCommandmode; use DXProtVars; use DXProtout; use DXProt; -use Aranea; use DXMsg; use DXCron; use DXConnect; @@ -99,15 +98,16 @@ use Mrtg; use USDB; use UDPMsg; use QSL; -use Thingy; use RouteDB; -use AMsg; use DXXml; +use DXSql; +use IsoTime; use Data::Dumper; use IO::File; use Fcntl ':flock'; use POSIX ":sys_wait_h"; +use Version; use Local; @@ -117,29 +117,19 @@ use strict; use vars qw(@inqueue $systime $version $starttime $lockfn @outstanding_connects $zombies $root @listeners $lang $myalias @debug $userfn $clusteraddr $clusterport $mycall $decease $is_win $routeroot $me $reqreg $bumpexisting - $allowdxby $dbh $dsn $dbuser $dbpass + $allowdxby $dbh $dsn $dbuser $dbpass $do_xml ); @inqueue = (); # the main input queue, an array of hashes $systime = 0; # the time now (in seconds) -$version = "1.52"; # the version no of the software $starttime = 0; # the starting time of the cluster -#@outstanding_connects = (); # list of outstanding connects +@outstanding_connects = (); # list of outstanding connects @listeners = (); # list of listeners $reqreg = 0; # 1 = registration required, 2 = deregister people $bumpexisting = 1; # 1 = allow new connection to disconnect old, 0 - don't allow it $allowdxby = 0; # 1 = allow "dx by ", 0 - don't allow it -use vars qw($VERSION $BRANCH $build $branch); -$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ ); -$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0)); -$main::build += $VERSION; -$main::branch += $BRANCH; -$main::build += 1; # fudge (put back for now) - - - # send a message to call on conn and disconnect sub already_conn { @@ -346,19 +336,10 @@ foreach (@debug) { } STDOUT->autoflush(1); -# calculate build number -$build += $main::version; -$build = "$build.$branch" if $branch; - # try to load the database -if ($dsn && -e "$root/perl/DXSql.pm") { - require DXSql; - import DXSql; - - if (DXSql::init()) { - $dbh = DXSql->new($dsn); - $dbh = $dbh->connect($dsn, $dbuser, $dbpass) if $dbh; - } +if (DXSql::init($dsn)) { + $dbh = DXSql->new($dsn); + $dbh = $dbh->connect($dsn, $dbuser, $dbpass) if $dbh; } # try to load XML::Simple @@ -466,7 +447,6 @@ Spot->init(); # initialise the protocol engine dbg("Start Protocol Engines ..."); DXProt->init(); -Aranea->init(); # put in a DXCluster node for us here so we can add users and take them away $routeroot = Route::Node->new($mycall, $version*100+5300, Route::here($main::me->here)|Route::conf($main::me->conf)); @@ -517,12 +497,12 @@ for (;;) { # do timed stuff, ongoing processing happens one a second if ($timenow != $systime) { - reap if $zombies; - $systime = $timenow; + reap() if $zombies; + IsoTime::update($systime = $timenow); DXCron::process(); # do cron jobs DXCommandmode::process(); # process ongoing command mode stuff + DXXml::process(); DXProt::process(); # process ongoing ak1a pcxx stuff - Aranea::process(); DXConnect::process(); DXMsg::process(); DXDb::process();