#
# Copyright (c) 1998 Dirk Koopman G1TLH
#
-# $Id$
+#
#
require 5.004;
use USDB;
use UDPMsg;
use QSL;
-use RouteDB;
use DXXml;
use DXSql;
use IsoTime;
+use BPQMsg;
use Data::Dumper;
use IO::File;
# set up the basic channel info
# is there one already connected to me - locally?
- my $user = DXUser->get_current($call);
+ my $user = DXUser::get_current($call);
my $dxchan = DXChannel::get($call);
if ($dxchan) {
if ($user && $user->is_node) {
# is he locked out ?
my $basecall = $call;
$basecall =~ s/-\d+$//;
- my $baseuser = DXUser->get_current($basecall);
+ my $baseuser = DXUser::get_current($basecall);
my $lock = $user->lockout if $user;
if ($baseuser && $baseuser->lockout || $lock) {
if (!$user || !defined $lock || $lock) {
$dxchan = DXProt->new($call, $conn, $user);
} elsif ($user->is_user) {
$dxchan = DXCommandmode->new($call, $conn, $user);
- } elsif ($user->is_bbs) {
- $dxchan = BBS->new($call, $conn, $user);
+# } elsif ($user->is_bbs) { # there is no support so
+# $dxchan = BBS->new($call, $conn, $user); # don't allow it!!!
} else {
die "Invalid sort of user on $call = $sort";
}
DXUser::sync;
- eval {
- Local::finish(); # end local processing
- };
- dbg("Local::finish error $@") if $@;
+ if (defined &Local::finish) {
+ eval {
+ Local::finish(); # end local processing
+ };
+ dbg("Local::finish error $@") if $@;
+ }
# disconnect nodes
foreach $dxchan (DXChannel::get_all_nodes) {
# disconnect AGW
AGWMsg::finish();
+ BPQMsg::finish();
# disconnect UDP customers
UDPMsg::finish();
$l->close_server;
}
- LogDbg('cluster', "DXSpider V$version, build $build ended");
+ LogDbg('cluster', "DXSpider V$version, build $subversion.$build ended");
dbgclose();
Logclose();
# banner
my ($year) = (gmtime)[5];
$year += 1900;
-LogDbg('cluster', "DXSpider V$version, build $build started");
+LogDbg('cluster', "DXSpider V$version, build $subversion.$build started");
dbg("Copyright (c) 1998-$year Dirk Koopman G1TLH");
# load Prefixes
# look for the sysop and the alias user and complain if they aren't there
{
- my $ref = DXUser->get($mycall);
+ my $ref = DXUser::get($mycall);
die "$mycall missing, run the create_sysop.pl script and please RTFM" unless $ref && $ref->priv == 9;
- $ref = DXUser->get($myalias);
+ $ref = DXUser::get($myalias);
die "$myalias missing, run the create_sysop.pl script and please RTFM" unless $ref && $ref->priv == 9;
}
dbg("AGW Listener") if $AGWMsg::enable;
AGWrestart();
+dbg("BPQ Listener") if $BPQMsg::enable;
+BPQMsg::init(\&new_channel);
+
dbg("UDP Listener") if $UDPMsg::enable;
UDPMsg::init(\&new_channel);
dbg("reading cron jobs ...");
DXCron->init();
-# read in database descriptors
+# read in database desriptors
dbg("reading database descriptors ...");
DXDb::load();
# starting local stuff
dbg("doing local initialisation ...");
QSL::init(1);
-eval {
- Local::init();
-};
-dbg("Local::init error $@") if $@;
+if (defined &Local::init) {
+ eval {
+ Local::init();
+ };
+ dbg("Local::init error $@") if $@;
+}
+
# this, such as it is, is the main loop!
dbg("orft we jolly well go ...");
DXUser::process();
DXDupe::process();
AGWMsg::process();
+ BPQMsg::process();
- eval {
- Local::process(); # do any localised processing
- };
- dbg("Local::process error $@") if $@;
+ if (defined &Local::process) {
+ eval {
+ Local::process(); # do any localised processing
+ };
+ dbg("Local::process error $@") if $@;
+ }
}
if ($decease) {
last if --$decease <= 0;