From e72ce56ce6973656acb064366459d54cda85f8cc Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Mon, 19 Nov 2007 13:05:56 +0000 Subject: [PATCH] tidy the Local.pm changes use the correct perl-fu to determine whether a function is defined or not. --- Changes | 3 + perl/DXProt.pm | 6 + perl/DXProtHandle.pm | 8 +- perl/Local.pm | 344 +++++++++++++++++++++---------------------- perl/Version.pm | 2 +- perl/cluster.pl | 31 ++-- 6 files changed, 205 insertions(+), 189 deletions(-) diff --git a/Changes b/Changes index ee7a52ae..f19c7b95 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,6 @@ +19Nov07======================================================================= +1. change MRTG graphs to be based on GMT, not localtime. This allows one to +more easily compare debug data with traffic graphs. 17Nov07======================================================================= 1. Add Local::ann() as requested by Felipe PY1NB. 16Nov07======================================================================= diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 8b415974..eafb591d 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -420,6 +420,12 @@ sub normal } } + if (defined &Local::pcprot) { + my $r; + eval { $r = Local::pcprot($self, $pcno, $line, @field); }; + return if $r; # i.e don't process it + } + # send it out for processing my $origin = $self->{call}; no strict 'subs'; diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index c15f4939..f28de6d0 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -273,7 +273,7 @@ sub handle_11 } # local processing - if (defined *Local::spot) { + if (defined &Local::spot) { my $r; eval { $r = Local::spot($self, @spot); @@ -360,7 +360,7 @@ sub handle_12 } # local processing - if (defined *Local::ann) { + if (defined &Local::ann) { my $r; eval { $r = Local::ann($self, $line, @_[1..6]); @@ -947,7 +947,7 @@ sub handle_23 # note this only takes the first one it gets Geomag::update($d, $_[2], $sfi, $k, $i, @_[6..8], $r); - if (defined *Local::wwv) { + if (defined &Local::wwv) { my $rep; eval { $rep = Local::wwv($self, $_[1], $_[2], $sfi, $k, $i, @_[6..8], $r); @@ -1318,7 +1318,7 @@ sub handle_73 my $wcy = WCY::update($d, @_[2..12]); - if (defined *Local::wcy) { + if (defined &Local::wcy) { my $rep; eval { $rep = Local::wcy($self, @_[1..12]); diff --git a/perl/Local.pm b/perl/Local.pm index 9421f784..3645b4de 100644 --- a/perl/Local.pm +++ b/perl/Local.pm @@ -23,157 +23,157 @@ use strict; use vars qw{ }; # called at initialisation time -sub init -{ - -} +#sub init +#{ +# +#} # called once every second -sub process -{ - -} +#sub process +#{ +# +#} # called just before the ending of the program -sub finish -{ - -} +#sub finish +#{ +# +#} # called after an incoming PC line has been split up, return 0 if you want to # continue and 1 if you wish the PC Protocol line to be ignored completely # # Parameters:- -# $self - the DXChannel object +# $self - the DXChannel object # $pcno - the no of the PC field +# $line - the actual incoming line with its hop count already decremented # @field - the spot exactly as is, split up into fields -# $field[0] will be PC11 or PC26 -sub pcprot -{ - return 0; # remove this line if you want the switch +# $field[0] will be PC11 or PC26 +#sub pcprot +#{ + +# my ($self, $pcno, $line, @field) = @_; - my ($self, $pcno, @field) = @_; - # take out any switches that aren't interesting to you. - SWITCH: { - if ($pcno == 10) { # incoming talk - last SWITCH; - } - - if ($pcno == 11 || $pcno == 26) { # dx spot - last SWITCH; - } - - if ($pcno == 12) { # announces - last SWITCH; - } - - if ($pcno == 13) { - last SWITCH; - } - if ($pcno == 14) { - last SWITCH; - } - if ($pcno == 15) { - last SWITCH; - } - - if ($pcno == 16) { # add a user - last SWITCH; - } - - if ($pcno == 17) { # remove a user - last SWITCH; - } - - if ($pcno == 18) { # link request - last SWITCH; - } - - if ($pcno == 19) { # incoming cluster list - last SWITCH; - } - - if ($pcno == 20) { # send local configuration - last SWITCH; - } - - if ($pcno == 21) { # delete a cluster from the list - last SWITCH; - } - - if ($pcno == 22) { - last SWITCH; - } - - if ($pcno == 23 || $pcno == 27) { # WWV info - last SWITCH; - } - - if ($pcno == 24) { # set here status - last SWITCH; - } - - if ($pcno == 25) { # merge request - last SWITCH; - } - - if (($pcno >= 28 && $pcno <= 33) || $pcno == 40 || $pcno == 42 || $pcno == 49) { # mail/file handling - last SWITCH; - } - - if ($pcno == 34 || $pcno == 36) { # remote commands (incoming) - last SWITCH; - } - - if ($pcno == 35) { # remote command replies - last SWITCH; - } - - if ($pcno == 37) { - last SWITCH; - } - - if ($pcno == 38) { # node connected list from neighbour - last SWITCH; - } - - if ($pcno == 39) { # incoming disconnect - last SWITCH; - } - - if ($pcno == 41) { # user info - last SWITCH; - } - if ($pcno == 43) { - last SWITCH; - } - if ($pcno == 44) { - last SWITCH; - } - if ($pcno == 45) { - last SWITCH; - } - if ($pcno == 46) { - last SWITCH; - } - if ($pcno == 47) { - last SWITCH; - } - if ($pcno == 48) { - last SWITCH; - } - - if ($pcno == 50) { # keep alive/user list - last SWITCH; - } - - if ($pcno == 51) { # incoming ping requests/answers - last SWITCH; - } - } - return 0; -} +# SWITCH: { +# if ($pcno == 10) { # incoming talk +# last SWITCH; +# } + +# if ($pcno == 11 || $pcno == 26) { # dx spot +# last SWITCH; +# } + +# if ($pcno == 12) { # announces +# last SWITCH; +# } + +# if ($pcno == 13) { +# last SWITCH; +# } +# if ($pcno == 14) { +# last SWITCH; +# } +# if ($pcno == 15) { +# last SWITCH; +# } + +# if ($pcno == 16) { # add a user +# last SWITCH; +# } + +# if ($pcno == 17) { # remove a user +# last SWITCH; +# } + +# if ($pcno == 18) { # link request +# last SWITCH; +# } + +# if ($pcno == 19) { # incoming cluster list +# last SWITCH; +# } + +# if ($pcno == 20) { # send local configuration +# last SWITCH; +# } + +# if ($pcno == 21) { # delete a cluster from the list +# last SWITCH; +# } + +# if ($pcno == 22) { +# last SWITCH; +# } + +# if ($pcno == 23 || $pcno == 27) { # WWV info +# last SWITCH; +# } + +# if ($pcno == 24) { # set here status +# last SWITCH; +# } + +# if ($pcno == 25) { # merge request +# last SWITCH; +# } + +# if (($pcno >= 28 && $pcno <= 33) || $pcno == 40 || $pcno == 42 || $pcno == 49) { # mail/file handling +# last SWITCH; +# } + +# if ($pcno == 34 || $pcno == 36) { # remote commands (incoming) +# last SWITCH; +# } + +# if ($pcno == 35) { # remote command replies +# last SWITCH; +# } + +# if ($pcno == 37) { +# last SWITCH; +# } + +# if ($pcno == 38) { # node connected list from neighbour +# last SWITCH; +# } + +# if ($pcno == 39) { # incoming disconnect +# last SWITCH; +# } + +# if ($pcno == 41) { # user info +# last SWITCH; +# } +# if ($pcno == 43) { +# last SWITCH; +# } +# if ($pcno == 44) { +# last SWITCH; +# } +# if ($pcno == 45) { +# last SWITCH; +# } +# if ($pcno == 46) { +# last SWITCH; +# } +# if ($pcno == 47) { +# last SWITCH; +# } +# if ($pcno == 48) { +# last SWITCH; +# } + +# if ($pcno == 50) { # keep alive/user list +# last SWITCH; +# } + +# if ($pcno == 51) { # incoming ping requests/answers +# last SWITCH; +# } +# } +# return 0; +#} # called after the spot has been stored but before it is broadcast, # you can do funky routing here that is non-standard. 0 carries on @@ -181,18 +181,18 @@ sub pcprot # that YOU have done some routing or other instead # # Parameters:- -# $self - the DXChannel object +# $self - the DXChannel object # $freq - frequency # $spotted - the spotted callsign # $d - the date in unix time format # $text - the text of the spot # $spotter - who spotted it # $orignode - the originating node -# -sub spot -{ - return 0; -} +# +#sub spot +#{ +# return 0; +#} # called after the announce has been stored but before it is broadcast, # you can do funky routing here that is non-standard. 0 carries on @@ -208,10 +208,10 @@ sub spot # $flag - ' ' - normal announce, * - SYSOP, else CHAT group # $origin - originating node # $wx - 0 - normal, 1 - WX -sub ann -{ - return 0; -} +#sub ann +#{ +# return 0; +#} # called after the wwv has been stored but before it is broadcast, @@ -220,33 +220,33 @@ sub ann # that YOU have done some routing or other instead # # Parameters:- -# $self - the DXChannel object -# The rest the same as for Geomag::update -sub wwv -{ - return 0; -} +# $self - the DXChannel object +# The rest the same as for Geomag::update +#sub wwv +#{ +# return 0; +#} # same for wcy broadcasts -sub wcy -{ - return 0; -} +#sub wcy +#{ +# return 0; +#} # no idea what or when these are called yet -sub userstart -{ - return 0; -} - -sub userline -{ - return 0; -} - -sub userfinish -{ - return 0; -} +#sub userstart +#{ +# return 0; +#} + +#sub userline +#{ +# return 0; +#} + +#sub userfinish +#{ +# return 0; +#} 1; __END__ diff --git a/perl/Version.pm b/perl/Version.pm index 7f1c0f1c..4d7bf1c5 100644 --- a/perl/Version.pm +++ b/perl/Version.pm @@ -11,6 +11,6 @@ use vars qw($version $subversion $build); $version = '1.54'; $subversion = '0'; -$build = '190'; +$build = '191'; 1; diff --git a/perl/cluster.pl b/perl/cluster.pl index d3c90534..620c7e77 100755 --- a/perl/cluster.pl +++ b/perl/cluster.pl @@ -240,10 +240,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) { @@ -491,10 +493,13 @@ 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 ..."); @@ -534,10 +539,12 @@ for (;;) { DXDupe::process(); AGWMsg::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; -- 2.43.0