# make sure that modules are searched in the order local then perl
BEGIN {
- unshift @INC, '/spider/perl'; # this IS the right way round!
- unshift @INC, '/spider/local';
+ # root of directory tree for this system
+ $root = "/spider";
+ $root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'};
+
+ unshift @INC, '$root/perl'; # this IS the right way round!
+ unshift @INC, '$root/local';
}
use Msg;
use DXM;
use DXCommandmode;
use DXProt;
+use DXMsg;
use DXCluster;
use DXDebug;
use Prefix;
+use Bands;
package main;
@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
+$version = 1.1; # the version no of the software
# handle disconnections
sub disconnect
{
my $dxchan = shift;
return if !defined $dxchan;
- my $user = $dxchan->{user};
- my $conn = $dxchan->{conn};
- $dxchan->finish();
- $user->close() if defined $user;
- $conn->disconnect() if defined $conn;
- $dxchan->del();
+ $dxchan->disconnect();
}
# handle incoming messages
STDOUT->autoflush(1);
# load Prefixes
+print "loading prefixes ...\n";
Prefix::load();
+# load band data
+print "loading band data ...\n";
+Bands::load();
+
# initialise User file system
+print "loading user file system ...\n";
DXUser->init($userfn);
# start listening for incoming messages/connects
+print "starting listener ...\n";
Msg->new_server("$clusteraddr", $clusterport, \&login);
# prime some signals
# initialise the protocol engine
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);
+
# this, such as it is, is the main loop!
+print "orft we jolly well go ...\n";
for (;;) {
my $timenow;
Msg->event_loop(1, 0.001);