}
# rsfp check
- return if $rspfcheck and !$self->rspfcheck(1, $field[7], $field[6]);
+# return if $rspfcheck and !$self->rspfcheck(1, $field[7], $field[6]);
# if this is a 'nodx' node then ignore it
if ($badnode->in($field[7])) {
dbg("PCPROT: useless 'BUSTED' spot") if isdbg('chanerr');
return;
}
- if (Spot::dup($field[1], $field[2], $d, $field[5])) {
- dbg("PCPROT: Duplicate Spot ignored\n") if isdbg('chanerr');
- return;
- }
if ($censorpc) {
my @bad;
if (@bad = BadWords::check($field[5])) {
}
}
+ if (Spot::dup($field[1], $field[2], $d, $field[5])) {
+ dbg("PCPROT: Duplicate Spot ignored\n") if isdbg('chanerr');
+ return;
+ }
+
# add it
Spot::add(@spot);
if ($pcno == 12) { # announces
- return if $rspfcheck and !$self->rspfcheck(1, $field[5], $field[1]);
+# return if $rspfcheck and !$self->rspfcheck(1, $field[5], $field[1]);
# announce duplicate checking
$field[3] =~ s/^\s+//; # remove leading blanks
- if (AnnTalk::dup($field[1], $field[2], $field[3])) {
- dbg("PCPROT: Duplicate Announce ignored") if isdbg('chanerr');
- return;
- }
if ($censorpc) {
my @bad;
# input filter if required
return unless $self->in_filter_route($parent);
- my @rout = $parent->del_user($uref);
-
- $self->route_pc17($parent, @rout) if @rout;
+ $parent->del_user($uref);
+ $self->route_pc17($parent, $uref);
return;
}
next if length $call < 3; # min 3 letter callsigns
next if $call eq $main::mycall;
+ # check that this PC19 isn't trying to alter the wrong dxchan
+ my $dxchan = DXChannel->get($call);
+ if ($dxchan && $dxchan != $self) {
+ dbg("PCPROT: PC19 from $self->{call} trying to alter wrong locally connected $call, ignored!") if isdbg('chanerr');
+ return;
+ }
+
# update it if required
my $r = Route::Node::get($call);
my $flags = Route::here($here)|Route::conf($conf);
my $node = Route::Node::get($call);
if ($node) {
- my $dxchan = $node->dxchan;
- if ($dxchan && $dxchan ne $self) {
+ my $dxchan = DXChannel->get($call);
+ if ($dxchan && $dxchan != $self) {
dbg("PCPROT: PC21 from $self->{call} trying to alter locally connected $call, ignored!") if isdbg('chanerr');
return;
}
return;
}
@field = map { unpad($_) } @field;
- if (WCY::dup($d,@field[3..7])) {
+ if (WCY::dup($d)) {
dbg("PCPROT: Dup WCY Spot ignored\n") if isdbg('chanerr');
return;
}
my $rep;
eval {
- $rep = Local::wwv($self, @field[1..12]);
+ $rep = Local::wcy($self, @field[1..12]);
};
# dbg("Local::wcy error $@") if isdbg('local') if $@;
return if $rep;
}
}
+ if (AnnTalk::dup($_[0], $_[1], $_[2])) {
+ dbg("PCPROT: Duplicate Announce ignored") if isdbg('chanerr');
+ return;
+ }
+
Log('ann', $target, $_[0], $text);
# send it if it isn't the except list and isn't isolated and still has a hop count