X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=4b7abd585696bf2dabd4f9c8be63cc43a7072a98;hb=09cf2338daaf67c2844b5d0894b78636c9ab6102;hp=9178a7277c54893055a4c3f95c87096994c1081c;hpb=fd0a34c34ad4112ee21e0730f7307498ff437e18;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index 9178a727..4b7abd58 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -102,6 +102,7 @@ use RouteDB; use DXXml; use DXSql; use IsoTime; +use BPQMsg; use Data::Dumper; use IO::File; @@ -207,8 +208,8 @@ sub new_channel $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"; } @@ -240,10 +241,12 @@ sub cease 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) { @@ -258,6 +261,7 @@ sub cease # disconnect AGW AGWMsg::finish(); + BPQMsg::finish(); # disconnect UDP customers UDPMsg::finish(); @@ -409,6 +413,9 @@ foreach my $l (@main::listen) { 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); @@ -484,17 +491,20 @@ DXMsg::clean_old(); 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 ..."); @@ -533,11 +543,14 @@ for (;;) { 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;