# do some de-duping
$field[5] =~ s/^\s+//; # take any leading blanks off
$field[2] = unpad($field[2]); # take off leading and trailing blanks from spotted callsign
+ if ($field[2] =~ /BUST|BUSTED$/) {
+ dbg('chan', "PCPROT: useless 'BUSTED' spot");
+ return;
+ }
if (Spot::dup($field[1], $field[2], $d, $field[5])) {
dbg('chan', "PCPROT: Duplicate Spot ignored\n");
return;
dbg('chan', "PCPROT: $field[2] came in on wrong channel");
return;
}
- if (($dxchan = DXChannel->get($field[2])) && $dxchan != $self) {
- dbg('chan', "PCPROT: $field[2] connected locally");
+ if ($dxchan = DXChannel->get($field[1])) {
+ dbg('chan', "PCPROT: $field[1] connected locally");
return;
}
my $ref = DXCluster->get_exact($field[1]);
if ($ref) {
+ if ($ref->mynode != $node) {
+ dbg('chan', "PCPROT: $field[1] came in from wrong node $field[2]");
+ return;
+ }
$ref->del;
} else {
dbg('chan', "PCPROT: $field[1] not known" );