From 400227d4bd709387099bf224b1c00a6f988c8196 Mon Sep 17 00:00:00 2001 From: Dirk Koopman Date: Sat, 31 Dec 2022 16:21:27 +0000 Subject: [PATCH] staging init Including: new spot regex positioning fix DXProtVar.pm to prevent default rehopping of PC61 & PC11 --- perl/DXCommandmode.pm | 10 ++--- perl/DXProtHandle.pm | 91 ++++++++++++++++++++++--------------------- perl/DXProtVars.pm | 11 +++--- 3 files changed, 58 insertions(+), 54 deletions(-) diff --git a/perl/DXCommandmode.pm b/perl/DXCommandmode.pm index 90812225..006d8d9d 100644 --- a/perl/DXCommandmode.pm +++ b/perl/DXCommandmode.pm @@ -401,12 +401,12 @@ sub normal } $self->send_ans(@ans); } else { -# if (@bad = BadWords::check($cmdline)) { -# $self->badcount(($self->badcount||0) + @bad); -# LogDbg('DXCommand', "$self->{call} swore: '$cmdline' with badwords: '" . join(',', @bad) . "'"); -# } else { + if (@bad = BadWords::check($cmdline)) { + $self->badcount(($self->badcount||0) + @bad); + LogDbg('DXCommand', "$self->{call} swore: '$cmdline' with badwords: '" . join(',', @bad) . "'"); + } else { $self->send_ans(run_cmd($self, $cmdline)); -# } + } } # check for excessive swearing diff --git a/perl/DXProtHandle.pm b/perl/DXProtHandle.pm index a6668a36..efc6c159 100644 --- a/perl/DXProtHandle.pm +++ b/perl/DXProtHandle.pm @@ -89,16 +89,6 @@ sub handle_10 return; } - # will we allow it at all? - if ($censorpc) { - my @bad; - if (@bad = BadWords::check($pc->[3])) { - my $bw = join ', ', @bad; - dbg($line) if isdbg('nologchan'); - dbg("PCPROT: Badwords: '$bw', dropped"); - return; - } - } # is it for me or one of mine? my ($from, $to, $via, $call, $dxchan); @@ -133,6 +123,17 @@ sub handle_10 return; } } + + # will we allow it at all? + if ($censorpc) { + my @bad; + if (@bad = BadWords::check($pc->[3])) { + my $bw = join ', ', @bad; + dbg($line) if isdbg('nologchan'); + dbg("PCPROT: Badwords: '$bw', dropped"); + return; + } + } # convert this to a PC93, coming from mycall with origin set and process it as such $main::me->normal(pc93($to, $from, $via, $pc->[3], $pc->[6])); @@ -213,10 +214,8 @@ sub handle_11 } # is it 'baddx' - if ($baddx->in($pc->[2]) || (my @bad = BadWords::check($pc->[2]))) { - my $bw = join ', ', @bad; - $bw = qq{ '$bw'} if $bw; - dbg("PCPROT: Bad DX spot$bw, ignored"); + if ($baddx->in($pc->[2])) { + dbg("PCPROT: Bad DX spot '$pc->[2]', ignored"); return; } @@ -227,15 +226,6 @@ sub handle_11 dbg("PCPROT: useless 'BUSTED' spot") if isdbg('chanerr'); return; } - if ($censorpc) { - my @bad; - if (@bad = BadWords::check($pc->[5])) { - my $bw = join ', ', @bad; - dbg($line) if isdbg('nologchan'); - dbg("PCPROT: Badwords: '$bw', dropped"); - return; - } - } my @spot = Spot::prepare($pc->[1], $pc->[2], $d, $pc->[5], $nossid, $pc->[7], $pc->[8]); @@ -334,6 +324,18 @@ sub handle_11 } } +# we until here to do any censorship to try and reduce the amount of noise that repeated copies +# from other connected nodes cause + if ($censorpc) { + my @bad; + if (@bad = BadWords::check($pc->[5])) { + my $bw = join ', ', @bad; + dbg($line) if isdbg('nologchan'); + dbg("PCPROT: Badwords: '$bw', dropped"); + return; + } + } + # If is a new PC11, store it, releasing the one that is there (if any), # if a PC61 comes along then dump the stored PC11 # If there is a different PC11 stored, release that one and store this PC11 instead, @@ -448,16 +450,6 @@ sub handle_12 # announce duplicate checking $pc->[3] =~ s/^\s+//; # remove leading blanks - if ($censorpc) { - my @bad; - if (@bad = BadWords::check($pc->[3])) { - my $bw = join ', ', @bad; - dbg($line) if isdbg('nologchan'); - dbg("PCPROT: Badwords: '$bw', dropped"); - return; - } - } - # if this is a 'nodx' node then ignore it if ($badnode->in($pc->[5])) { dbg($line) if isdbg('nologchan'); @@ -481,6 +473,17 @@ sub handle_12 return; } + if ($censorpc) { + my @bad; + if (@bad = BadWords::check($pc->[3])) { + my $bw = join ', ', @bad; + dbg($line) if isdbg('nologchan'); + dbg("PCPROT: Badwords: '$bw', dropped"); + return; + } + } + + my $dxchan; if ((($dxchan = DXChannel::get($pc->[2])) && $dxchan->is_user) || $pc->[4] =~ /^[\#\w.]+$/){ @@ -2268,17 +2271,6 @@ sub handle_93 my $s = "ANNTALK: $from\@$onode$vs -> $to '$text' route: $origin"; dbg($s); } - - # will we allow it at all? - if ($censorpc) { - my @bad; - if (@bad = BadWords::check($text)) { - my $bw = join ', ', @bad; - dbg($line) if isdbg('nologchan'); - dbg("PCPROT: Badwords: '$bw', dropped"); - return; - } - } # if this is a 'bad spotter' user then ignore it my $nossid = $from; @@ -2295,6 +2287,17 @@ sub handle_93 return; } + # will we allow it at all? + if ($censorpc) { + my @bad; + if (@bad = BadWords::check($text)) { + my $bw = join ', ', @bad; + dbg($line) if isdbg('nologchan'); + dbg("PCPROT: Badwords: '$bw', dropped"); + return; + } + } + # if it is routeable then then treat it like a talk my $ref = Route::get($to); if ($ref) { diff --git a/perl/DXProtVars.pm b/perl/DXProtVars.pm index ae192bcf..abb9fba4 100644 --- a/perl/DXProtVars.pm +++ b/perl/DXProtVars.pm @@ -2,6 +2,8 @@ # # These are various values used by the AK1A protocol stack # +# Copy this file to /spider/local before use! +# # Change these at your peril (or if you know what you are doing)! # # Copyright (c) 1998 - Dirk Koopman G1TLH @@ -22,11 +24,10 @@ $def_hopcount = 30; # some variable hop counts based on message type %hopcount = ( - 11 => 25, - 16 => 25, - 17 => 25, - 19 => 25, - 21 => 25, + 16 => 15, + 17 => 15, + 19 => 15, + 21 => 15, ); # list of nodes we don't accept dx from -- 2.34.1