X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fcluster.pl;h=0fe3b575a98588be279dac7e658f24170219a8e3;hb=22709bc68bb04f5ee548053956c88eeca42ad3b4;hp=e1e75472223fc7beef785258b1f43b7cb7826320;hpb=281bb0799ecf66390c48719f76ca5d9f83fe4c73;p=spider.git diff --git a/perl/cluster.pl b/perl/cluster.pl index e1e75472..0fe3b575 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -7,7 +7,7 @@ # # Copyright (c) 1998 Dirk Koopman G1TLH # -# $Id$ +# # require 5.004; @@ -102,6 +102,7 @@ use RouteDB; use DXXml; use DXSql; use IsoTime; +use BPQMsg; use Data::Dumper; use IO::File; @@ -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;