X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=5211b7aa622ec6553084b3371925bd0919d8405a;hb=11056ea11fce910aa0e0d183a1cce73cf0de1c21;hp=ebc23561dae10ac0c7cf4760836870b96b01cbd9;hpb=129b45395239f73e39ccb5f251e492bbdecb47e2;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index ebc23561..5211b7aa 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -28,13 +28,14 @@ use Local; use Carp; use strict; -use vars qw($me $pc11_max_age $pc11_dup_age $pc23_dup_age - %spotdup %wwvdup $last_hour %pings %rcmds +use vars qw($me $pc11_max_age $pc23_max_age $pc11_dup_age $pc23_dup_age + %spotdup %wwvdup $last_hour %pings %rcmds %nodehops @baddx $baddxfn $pc12_dup_age %anndup $allowzero); $me = undef; # the channel id for this cluster $pc11_max_age = 1*3600; # the maximum age for an incoming 'real-time' pc11 +$pc23_max_age = 1*3600; # the maximum age for an incoming 'real-time' pc23 $pc11_dup_age = 24*3600; # the maximum time to keep the spot dup list for $pc23_dup_age = 24*3600; # the maximum time to keep the wwv dup list for $pc12_dup_age = 24*3600; # the maximum time to keep the ann dup list for @@ -209,7 +210,7 @@ sub normal # store it away my $spotter = $field[6]; - $spotter =~ s/-\d+$//o; # strip off the ssid from the spotter + $spotter =~ s/-[\@\d]+$//o; # strip off the ssid from the spotter # do some de-duping my $freq = $field[1] - 0; @@ -512,7 +513,7 @@ sub normal dbg('chan', "Dup WWV Spot ignored\n"); return; } - if ($d > $main::systime + 900 || $field[2] < 0 || $field[2] > 23) { + if ($d < $main::systime - $pc23_max_age || $d > $main::systime + 900 || $field[2] < 0 || $field[2] > 23) { dbg('chan', "WWV Date ($field[1] $field[2]) out of range"); return; } @@ -811,7 +812,13 @@ sub send_dx_spot # taking into account filtering and so on foreach $dxchan (@dxchan) { my $routeit; - my ($filter, $hops) = Filter::it($dxchan->{spotfilter}, @_, $self->{call} ) if $dxchan->{spotfilter}; + my ($filter, $hops); + + if ($dxchan->{spotfilter}) { + ($filter, $hops) = Filter::it($dxchan->{spotfilter}, @_, $self->{call} ); + next unless $filter; + } + if ($dxchan->is_ak1a) { next if $dxchan == $self; if ($hops) {