From d1bb2509404e68cb69d075329312818d1c47ad13 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Wed, 27 Mar 2024 15:14:08 +0000 Subject: [PATCH] Catch spot dupes if they come in very quickly Basically (apparently) there was a hole in the PC[16]1 handling where it would accept a duplicate spot if it (physically) came in the same second. I'm not completely convinced that this is root of the problem but I can't see a reason to have the code that was there in DXProt::handle_11. --- Changes | 4 ++++ perl/Filter.pm | 4 +--- perl/Spot.pm | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Changes b/Changes index e2f183d1..9d46dc94 100644 --- a/Changes +++ b/Changes @@ -1,3 +1,7 @@ +27Mar24====================================================================== +1. Fix dupe PC[16]1 (spot) coming in "too fast" for dupe filter to work. + + Probably. 25Mar24====================================================================== 1. Make talk work. Note: this now works as the mojo branch originally expected - which means that it may (and likely will) flood route talks diff --git a/perl/Filter.pm b/perl/Filter.pm index 4be0b630..f4089fcf 100644 --- a/perl/Filter.pm +++ b/perl/Filter.pm @@ -348,9 +348,7 @@ sub install if ($remove) { $dxchan->{$n} = undef; } - unless ($dxchan->{$n}) { - Filter::load_dxchan($dxchan, $sort, $in); - } + Filter::load_dxchan($dxchan, $sort, $in); } } diff --git a/perl/Spot.pm b/perl/Spot.pm index c492d918..64db9a72 100644 --- a/perl/Spot.pm +++ b/perl/Spot.pm @@ -514,10 +514,9 @@ sub dup $text = substr($text, 0, $duplth) if length $text > $duplth; my $ldupkey = $oldstyle ? "X|$call|$by|$node|$freq|$d|$text" : "X|$call|$by|$node|$qrg|$nd|$text"; - dbg("Spot::dup ldupkey $ldupkey") if isdbg('spotdup'); - my $t = DXDupe::find($ldupkey); - return 1 if $t && $t - $main::systime > 0; + dbg("Spot::dup ldupkey $ldupkey t '$t'") if isdbg('spotdup'); + return 1 if $t > 0; DXDupe::add($ldupkey, $main::systime+$dupage) unless $just_find; $otext = substr($otext, 0, $duplth) if length $otext > $duplth; @@ -525,7 +524,8 @@ sub dup if (length $otext && $otext ne $text) { $ldupkey = $oldstyle ? "X|$freq|$call|$by|$otext" : "X|$qrg|$call|$by|$otext"; $t = DXDupe::find($ldupkey); - return 1 if $t && $t - $main::systime > 0; + dbg("Spot::dup ldupkey $ldupkey t '$t'") if isdbg('spotdup'); + return 1 if $t > 0; DXDupe::add($ldupkey, $main::systime+$dupage) unless $just_find; } return undef; -- 2.43.0