From 7bf828b924d7d1ddc7c81e65d816bdc36f55a92f Mon Sep 17 00:00:00 2001 From: minima Date: Mon, 5 Sep 2005 21:24:07 +0000 Subject: [PATCH] fix WWV brodacasting and filtering --- Changes | 5 +++++ perl/DXProt.pm | 9 +++++---- perl/DXUser.pm | 2 +- perl/Geomag.pm | 4 ++-- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Changes b/Changes index 770879b7..a26d9141 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,8 @@ +01Sep05======================================================================= +1. Change the logic of propagating WWV broadcasts. Now all non-input filtered +PC23s will be sent on. Previously only the first successful new WWV was +rebroadcast. +2. fix the problem with by_dxcc and origin_dxcc not working on WWV. 29Aug05======================================================================= 1. try something else to resolve/prevent more of these spot dupes. It appears that there is software out there chopping off variable amounts from the ends diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 5bf0d1f9..a7ef5562 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -1236,21 +1236,22 @@ sub handle_23 } # global wwv filtering on INPUT - my @dxcc = ((Prefix::cty_data($_[6]))[0..2], (Prefix::cty_data($_[7]))[0..2]); + my @dxcc = ((Prefix::cty_data($_[7]))[0..2], (Prefix::cty_data($_[8]))[0..2]); if ($self->{inwwvfilter}) { my ($filter, $hops) = $self->{inwwvfilter}->it(@_[7,8], $origin, @dxcc); unless ($filter) { - dbg("PCPROT: Rejected by input spot filter") if isdbg('chanerr'); + dbg("PCPROT: Rejected by input wwv filter") if isdbg('chanerr'); return; } } - if (Geomag::dup($d,$sfi,$k,$i,$_[6])) { + if (Geomag::dup($d,$sfi,$k,$i,$_[6],$_[7])) { dbg("PCPROT: Dup WWV Spot ignored\n") if isdbg('chanerr'); return; } $_[7] =~ s/-\d+$//o; # remove spotter's ssid - my $wwv = 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); my $rep; eval { diff --git a/perl/DXUser.pm b/perl/DXUser.pm index 8b856b13..136ddee1 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -491,7 +491,7 @@ print "There are $count user records and $err errors\n"; my $ref = decode($val); if ($ref) { my $t = $ref->{lastin} || 0; - if ($main::systime > $t + $tooold) { + if ($ref->{sort} eq 'U' && !$ref->{priv} && $main::systime > $t + $tooold) { unless ($ref->{lat} && $ref->{long} || $ref->{qth} || $ref->{qra}) { eval {$dbm->del($key)}; dbg(carp("Export Error2: $key\t$val\n$@")) if $@; diff --git a/perl/Geomag.pm b/perl/Geomag.pm index b1985f05..022c4519 100644 --- a/perl/Geomag.pm +++ b/perl/Geomag.pm @@ -268,12 +268,12 @@ sub readfile # enter the spot for dup checking and return true if it is already a dup sub dup { - my ($d, $sfi, $k, $a, $text) = @_; + my ($d, $sfi, $k, $a, $text, $call) = @_; # dump if too old return 2 if $d < $main::systime - $dupage; - my $dupkey = "W$d|$sfi|$k|$a"; + my $dupkey = "W$d|$sfi|$k|$a|$call"; return DXDupe::check($dupkey, $main::systime+$dupage); } -- 2.34.1