return;
}
- # will we allow it at all?
- if ($censorpc) {
- my @bad;
- if (@bad = BadWords::check($pc->[3])) {
- dbg("PCPROT: Bad words: @bad, dropped") if isdbg('chanerr');
- return;
- }
- }
# is it for me or one of mine?
my ($from, $to, $via, $call, $dxchan);
# if this is a 'nodx' node then ignore it
if ($badnode->in($pc->[6]) || ($via && $badnode->in($via))) {
- dbg("PCPROT: Bad Node, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Node, dropped");
return;
}
my $nossid = $from;
$nossid =~ s/-\d+$//;
if ($badspotter->in($nossid)) {
- dbg("PCPROT: Bad Spotter, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Spotter, dropped");
return;
}
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]));
# is the spotted callsign blank? This should really be trapped earlier but it
# could break other protocol sentences. Also check for lower case characters.
if ($pc->[2] =~ /^\s*$/) {
- dbg("PCPROT: blank callsign, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: blank callsign, dropped");
return;
}
if ($pc->[2] =~ /[a-z]/) {
- dbg("PCPROT: lowercase characters, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: lowercase characters, dropped");
return;
}
# if this is a 'nodx' node then ignore it
if ($badnode->in($pc->[7])) {
- dbg("PCPROT: Bad Node $pc->[7], dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Node $pc->[7], dropped");
return;
}
my $nossid = $pc->[6];
$nossid =~ s/-\d+$//;
if ($badspotter->in($nossid)) {
- dbg("PCPROT: Bad Spotter $pc->[6], dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Spotter $pc->[6], dropped");
return;
}
my $d = cltounix($pc->[3], $pc->[4]);
# bang out (and don't pass on) if date is invalid or the spot is too old (or too young)
if (!$d || (($pcno == 11 || $pcno == 61) && ($d < $main::systime - $pc11_max_age || $d > $main::systime + 900))) {
- dbg("PCPROT: Spot ignored, invalid date or out of range ($pc->[3] $pc->[4])\n") if isdbg('chanerr');
+ dbg("PCPROT: Spot ignored, invalid date or out of range ($pc->[3] $pc->[4])\n");
return;
}
# is it 'baddx'
- if ($baddx->in($pc->[2]) || BadWords::check($pc->[2])) {
- dbg("PCPROT: Bad DX spot, ignored") if isdbg('chanerr');
+ if ($baddx->in($pc->[2])) {
+ dbg("PCPROT: Bad DX spot '$pc->[2]', ignored");
return;
}
dbg("PCPROT: useless 'BUSTED' spot") if isdbg('chanerr');
return;
}
- if ($censorpc) {
- my @bad;
- if (@bad = BadWords::check($pc->[5])) {
- dbg("PCPROT: Bad words: @bad, dropped") if isdbg('chanerr');
- return;
- }
- }
my @spot = Spot::prepare($pc->[1], $pc->[2], $d, $pc->[5], $nossid, $pc->[7], $pc->[8]);
}
}
+# 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,
# announce duplicate checking
$pc->[3] =~ s/^\s+//; # remove leading blanks
- if ($censorpc) {
- my @bad;
- if (@bad = BadWords::check($pc->[3])) {
- dbg("PCPROT: Bad words: @bad, dropped") if isdbg('chanerr');
- return;
- }
- }
-
# if this is a 'nodx' node then ignore it
if ($badnode->in($pc->[5])) {
- dbg("PCPROT: Bad Node, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Node, dropped");
return;
}
my $nossid = $pc->[1];
$nossid =~ s/-\d+$//;
if ($badspotter->in($nossid)) {
- dbg("PCPROT: Bad Spotter, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Spotter, dropped");
return;
}
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.]+$/){
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)) {
- dbg("PCPROT: Bad words: @bad, dropped") if isdbg('chanerr');
- return;
- }
- }
# if this is a 'bad spotter' user then ignore it
my $nossid = $from;
$nossid =~ s/-\d+$//;
if ($badspotter->in($nossid)) {
- dbg("PCPROT: Bad Spotter, dropped") if isdbg('chanerr');
+ dbg($line) if isdbg('nologchan');
+ dbg("PCPROT: Bad Spotter, dropped");
return;
}
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) {