projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Limit depth of recursion for route finding
[spider.git]
/
perl
/
DXProtHandle.pm
diff --git
a/perl/DXProtHandle.pm
b/perl/DXProtHandle.pm
index c15f4939c551577f1ea4e34e19f824202265c8ab..cb13e37c652b77ba86d7b5ab0332a6c482c8a5fe 100644
(file)
--- a/
perl/DXProtHandle.pm
+++ b/
perl/DXProtHandle.pm
@@
-46,6
+46,7
@@
use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restim
$eph_pc15_restime $pc9x_past_age $pc9x_dupe_age
$pc10_dupe_age $pc92_slug_changes $last_pc92_slug
$pc92Ain $pc92Cin $pc92Din $pc92Kin $pc9x_time_tolerance
$eph_pc15_restime $pc9x_past_age $pc9x_dupe_age
$pc10_dupe_age $pc92_slug_changes $last_pc92_slug
$pc92Ain $pc92Cin $pc92Din $pc92Kin $pc9x_time_tolerance
+ $pc92filterdef
);
$pc9x_dupe_age = 60; # catch loops of circular (usually) D records
);
$pc9x_dupe_age = 60; # catch loops of circular (usually) D records
@@
-57,6
+58,15
@@
$pc9x_past_age = (122*60)+ # maximum age in the past of a px9x (a config record
$pc9x_time_tolerance; # thing a node might send - once an hour and we allow an extra hour for luck)
# this is actually the partition between "yesterday" and "today" but old.
$pc9x_time_tolerance; # thing a node might send - once an hour and we allow an extra hour for luck)
# this is actually the partition between "yesterday" and "today" but old.
+$pc92filterdef = bless ([
+ # tag, sort, field, priv, special parser
+ ['call', 'c', 0],
+ ['by', 'c', 0],
+ ['dxcc', 'nc', 1],
+ ['itu', 'ni', 2],
+ ['zone', 'nz', 3],
+ ], 'Filter::Cmd');
+
# incoming talk commands
sub handle_10
# incoming talk commands
sub handle_10
@@
-226,7
+236,7
@@
sub handle_11
#
# fix up qra locators of known users
#
# fix up qra locators of known users
- my $user = DXUser
->
get_current($spot[4]);
+ my $user = DXUser
::
get_current($spot[4]);
if ($user) {
my $qra = $user->qra;
unless ($qra && is_qra($qra)) {
if ($user) {
my $qra = $user->qra;
unless ($qra && is_qra($qra)) {
@@
-273,7
+283,7
@@
sub handle_11
}
# local processing
}
# local processing
- if (defined
*
Local::spot) {
+ if (defined
&
Local::spot) {
my $r;
eval {
$r = Local::spot($self, @spot);
my $r;
eval {
$r = Local::spot($self, @spot);
@@
-360,7
+370,7
@@
sub handle_12
}
# local processing
}
# local processing
- if (defined
*
Local::ann) {
+ if (defined
&
Local::ann) {
my $r;
eval {
$r = Local::ann($self, $line, @_[1..6]);
my $r;
eval {
$r = Local::ann($self, $line, @_[1..6]);
@@
-463,7
+473,7
@@
sub handle_16
# reject this if we think it is a node already
my $r = Route::Node::get($call);
# reject this if we think it is a node already
my $r = Route::Node::get($call);
- my $u = DXUser
->
get_current($call) unless $r;
+ my $u = DXUser
::
get_current($call) unless $r;
if ($r || ($u && $u->is_node)) {
dbg("PCPROT: $call is a node") if isdbg('chanerr');
next;
if ($r || ($u && $u->is_node)) {
dbg("PCPROT: $call is a node") if isdbg('chanerr');
next;
@@
-485,7
+495,7
@@
sub handle_16
}
# add this station to the user database, if required
}
# add this station to the user database, if required
- my $user = DXUser
->
get_current($ncall);
+ my $user = DXUser
::
get_current($ncall);
$user = DXUser->new($call) unless $user;
$user->homenode($parent->call) if !$user->homenode;
$user->node($parent->call);
$user = DXUser->new($call) unless $user;
$user->homenode($parent->call) if !$user->homenode;
$user->node($parent->call);
@@
-568,7
+578,7
@@
sub handle_17
$parent->del_user($uref);
# send info to all logged in thingies
$parent->del_user($uref);
# send info to all logged in thingies
- my $user = DXUser
->
get_current($ncall);
+ my $user = DXUser
::
get_current($ncall);
$self->tell_login('logoutu', "$ncall: $ucall") if $user && $user->is_local_node;
$self->tell_buddies('logoutb', $ucall, $ncall);
$self->tell_login('logoutu', "$ncall: $ucall") if $user && $user->is_local_node;
$self->tell_buddies('logoutb', $ucall, $ncall);
@@
-638,7
+648,7
@@
sub check_add_node
my $call = shift;
# add this station to the user database, if required (don't remove SSID from nodes)
my $call = shift;
# add this station to the user database, if required (don't remove SSID from nodes)
- my $user = DXUser
->
get_current($call);
+ my $user = DXUser
::
get_current($call);
if (!$user) {
$user = DXUser->new($call);
$user->priv(1); # I have relented and defaulted nodes
if (!$user) {
$user = DXUser->new($call);
$user->priv(1); # I have relented and defaulted nodes
@@
-947,7
+957,7
@@
sub handle_23
# note this only takes the first one it gets
Geomag::update($d, $_[2], $sfi, $k, $i, @_[6..8], $r);
# 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);
my $rep;
eval {
$rep = Local::wwv($self, $_[1], $_[2], $sfi, $k, $i, @_[6..8], $r);
@@
-1142,7
+1152,7
@@
sub handle_41
}
# add this station to the user database, if required
}
# add this station to the user database, if required
- my $user = DXUser
->
get_current($call);
+ my $user = DXUser
::
get_current($call);
$user = DXUser->new($call) unless $user;
if ($sort == 1) {
$user = DXUser->new($call) unless $user;
if ($sort == 1) {
@@
-1318,7
+1328,7
@@
sub handle_73
my $wcy = WCY::update($d, @_[2..12]);
my $wcy = WCY::update($d, @_[2..12]);
- if (defined
*
Local::wcy) {
+ if (defined
&
Local::wcy) {
my $rep;
eval {
$rep = Local::wcy($self, @_[1..12]);
my $rep;
eval {
$rep = Local::wcy($self, @_[1..12]);
@@
-1709,7
+1719,7
@@
sub handle_92
}
} elsif ($sort eq 'K') {
}
} elsif ($sort eq 'K') {
- $pc92Kin += length $line
if $sort eq 'K'
;
+ $pc92Kin += length $line;
# remember the last channel we arrived on
$parent->PC92C_dxchan($self->{call}) unless $self->{call} eq $parent->call;
# remember the last channel we arrived on
$parent->PC92C_dxchan($self->{call}) unless $self->{call} eq $parent->call;