<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Well I think it is, in Spot.pm:<br>
<br>
<font face="monospace">sub handle_dupecalls<br>
{<br>
my $call = shift;<br>
my $reason = shift;<br>
my $testtype = shift;<br>
my $just_find = shift;<br>
my $timeout = shift || $dupecall;<br>
my $threshold = shift || $dupecallthreshold;<br>
my <font color="#ff0000"><b>$tick </b></font>= shift<font
color="#ff0000"><b> || $calltick;</b></font><br>
<br>
my $check = $just_find ? 'CHECK' : 'ADD ';<br>
<br>
# we are DEFINITELY kicking the timer down the road until it
stops<br>
# in a sustained attack this will oscillate between systime
and systime + threshold until<br>
# the attack stops and the record is cleaned away as normal<br>
my $ldupkey = "X$call";<br>
my $t = DXDupe::find($ldupkey);<br>
<br>
if ($t > 0) {<br>
my $new = $t +<font color="#ff0000"><b> $tick;</b></font><br>
if ($t < $main::systime + $threshold) {<br>
</font><br>
A bit further up this function is called:<br>
<b><br>
<font face="monospace"> </font></b><font face="monospace"> #
first crude flood protection. This plain callsign checking
spotting anything that isn't caught by preceding tests.<br>
if ($dupecall) {<br>
$t = handle_dupecalls($call, $reason, "(CALL)",
$just_find) if $do_call_check;<br>
$t ||= handle_dupecalls($by, $reason, "(BY)",
$just_find) if $do_by_check;<br>
$t ||= handle_dupecalls("N$node", $reason, "(NODE)",
$just_find, $nodetime, $nodetimethreshold) if $do_node_check;<br>
$t ||= handle_dupecalls($ipaddr, $reason, "(IPADDR)",
$just_find) if $do_ipaddr_check && $ipaddr &&
is_ipaddr($ipaddr);<br>
<br>
return $t if $t && $just_find;<br>
}</font><br>
<br>
As the last three arguments are not set in the function calls,
they get the defaults. One of which is <font face="monospace">$calltick.</font><br>
<br>
The problem with trying to model this is that the time continues
underneath all these timers. So analysing it is pretty
non-deterministic. You have send the spot and then observe the
result at exactly the same number of seconds later.<br>
<br>
Hope this helps<br>
<br>
Dirk G1TLH<br>
<br>
On 05/04/2025 16:39, Kin via Dxspider-support wrote:<br>
</div>
<blockquote type="cite"
cite="mid:0b4501dba640$e2bebb70$a83c3250$@cronux.net">
<pre wrap="" class="moz-quote-pre">Hi Dirk,
I'm analysing these two spots, and it seems to me that $calltick is not
actually being applied. Instead, it appears to be replaced by $dupecall.
Spot-1
1743764875^PC61^28482.0^4X4HQ^
4-Apr-2025^1107Z^CQing^ON3FZT^PA1RBZ^91.177.93.57^H27^
DXDupe::add key: X4X4HQ|ON3FZT|28482|1743764820|CQING time: 11:17:55Z (time
de llegada al nodo)
DXDupe::add key: X4X4HQ|28482 time: 11:09:00Z
DXDupe::add key: X4X4HQ|CQING time: 11:13:00Z
DXDupe::add key: X4X4HQ time: 11:08:05Z
DXDupe::add key: XON3FZT time: 11:08:05Z
DXDupe::add key: X91.177.93.57 time: 11:08:05Z
Spot-2
1743764885^PC61^28482.0^4X4HQ^
4-Apr-2025^1107Z^CQing^ON3FZT^PA1RBZ^91.177.93.57^H27^
DXDupe::add key: X4X4HQ|ON3FZT|28482|1743764820|CQING time: 11:18:05Z (time
de llegada al nodo)
DXDupe::add key: X4X4HQ|28482 time: 11:09:00Z
DXDupe::add key: X4X4HQ|CQING time: 11:13:00Z
DXDupe::add key: X4X4HQ time: 11:08:15Z ***
DXDupe::add key: XON3FZT time: 11:08:15Z ***
DXDupe::add key: X91.177.93.57 time: 11:08:15Z ***
Note ***
Previous expiration t = 11:07:55Z = 1743764875
$main::systime = 11:08:05Z = 1743764885
Threshold ($Spot::dupecallthreshold) = 35
So: t < $main::systime + 35 -> OK
New value calculated: 1743764885 + 5 = 1743764890 = 11:08:10Z
($main::systime is equal to the arrival time of the second spot)
However, that value is not actually used. Instead, it is replaced with:
$main::systime + $dupecall = 1743764885 + 10 = 1743764895 = 11:08:15Z
The keys X4X4HQ, XON3FZT, and X91.177.93.57 are all renewed using $dupecall
(10 seconds), not $calltick.
The $calltick = 5 is effectively not applied here, because:
Even though the code computes t + $calltick, it is overwritten by:
DXDupe::add($ldupkey, $main::systime + $dupecall)
Variable values used:
$Spot::dupage 600
$Spot::dupeqrgcall 65
$Spot::dupecallinfo 305
$Spot::dupecall 10
$Spot::calltick 5
$Spot::dupecallthreshold 35
Is my understanding correct?
Kin EA3CV
_______________________________________________
Dxspider-support mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Dxspider-support@tobit.co.uk">Dxspider-support@tobit.co.uk</a>
<a class="moz-txt-link-freetext" href="https://mailman.tobit.co.uk/mailman/listinfo/dxspider-support">https://mailman.tobit.co.uk/mailman/listinfo/dxspider-support</a>
</pre>
</blockquote>
<br>
</body>
</html>