use DXXml;
use DXSql;
use IsoTime;
+use BPQMsg;
use Data::Dumper;
use IO::File;
$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();
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;