use DXProtVars;
use DXProtout;
use DXProt;
-use Aranea;
use DXMsg;
use DXCron;
use DXConnect;
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;
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 <othercall>", 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
{
if ($bumpexisting) {
my $ip = $conn->{peerhost} || 'unknown';
$dxchan->send_now('D', DXM::msg($lang, 'conbump', $call, $ip));
- Log('DXCommand', "$call bumped off by $ip, disconnected");
- dbg("$call bumped off by $ip, disconnected");
+ LogDbg('DXCommand', "$call bumped off by $ip, disconnected");
$dxchan->disconnect;
} else {
already_conn($conn, $call, DXM::msg($lang, 'conother', $call, $main::mycall));
if ($baseuser && $baseuser->lockout || $lock) {
if (!$user || !defined $lock || $lock) {
my $host = $conn->{peerhost} || "unknown";
- Log('DXCommand', "$call on $host is locked out, disconnected");
+ LogDbg('DXCommand', "$call on $host is locked out, disconnected");
$conn->disconnect;
return;
}
$l->close_server;
}
- dbg("DXSpider version $version, build $build ended") if isdbg('chan');
- Log('cluster', "DXSpider V$version, build $build ended");
+ LogDbg('cluster', "DXSpider V$version, build $build ended");
dbgclose();
Logclose();
}
STDOUT->autoflush(1);
-# calculate build number
-$build += $main::version;
-$build = "$build.$branch" if $branch;
+# try to load the database
+if (DXSql::init($dsn)) {
+ $dbh = DXSql->new($dsn);
+ $dbh = $dbh->connect($dsn, $dbuser, $dbpass) if $dbh;
+}
-Log('cluster', "DXSpider V$version, build $build started");
+# try to load XML::Simple
+DXXml::init();
# banner
my ($year) = (gmtime)[5];
$year += 1900;
+LogDbg('cluster', "DXSpider V$version, build $build started");
dbg("Copyright (c) 1998-$year Dirk Koopman G1TLH");
-dbg("DXSpider Version $version, build $build started");
-
-# 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;
- }
-}
# load Prefixes
dbg("loading prefixes ...");
# 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));
# 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();