if ($self->{inspotsfilter}) {
my ($filter, $hops) = $self->{inspotsfilter}->it(@spot);
unless ($filter) {
- dbg("PCPROT: Rejected by filter") if isdbg('chanerr');
+ dbg("PCPROT: Rejected by input spot filter") if isdbg('chanerr');
return;
}
}
my ($filter, $hops) = $self->{inannfilter}->it(@field[1..6], $self->{call},
$ann_dxcc, $ann_itu, $ann_cq, $org_dxcc, $org_itu, $org_cq);
unless ($filter) {
- dbg("PCPROT: Rejected by filter") if isdbg('chanerr');
+ dbg("PCPROT: Rejected by input announce filter") if isdbg('chanerr');
return;
}
}
# update it if required
my $r = Route::Node::get($call);
my $flags = Route::here($here)|Route::conf($conf);
- if ($parent->call eq $call && ($parent->version ne $ver || $parent->flags != $flags)) {
- $parent->version($ver);
- $parent->flags($flags);
- push @rout, $parent;
- } elsif ($r) {
- my $ar = $parent->add($r);
- push @rout, $ar if $ar;
+ if ($r) {
+ my $ar;
+ if ($call ne $parent->call) {
+ $ar = $parent->add($r);
+ push @rout, $ar if $ar;
+ }
if ($r->version ne $ver || $r->flags != $flags) {
$r->version($ver);
$r->flags(Route::here($here)|Route::conf($conf));
push @rout, $r unless $ar;
}
- } elsif ($parent->call ne $call) {
+ } else {
next if $call eq $main::mycall || $call eq $self->{call};
- my $new = Route::Node->new($call, $ver, Route::here($here)|Route::conf($conf));
+ my $new = $parent->new($call, $ver, Route::here($here)|Route::conf($conf));
if ($self->in_filter_route($new)) {
$parent->add($new);
push @rout, $new;
if ($filter) {
push @rin, $r;
} else {
- dbg('DXPROT: Rejected by filter') if isdbg('chanerr');
+ dbg("DXPROT: $self->{call}/" . $r->call . " rejected by output filter") if isdbg('chanerr');
}
} else {
dbg("was sent a null value") if isdbg('chanerr');
if ($self->{inroutefilter}) {
($filter, $hops) = $self->{inroutefilter}->it($self->{call}, $self->{dxcc}, $self->{itu}, $self->{cq}, $r->call, $r->dxcc, $r->itu, $r->cq);
- dbg('PCPROT: rejected by filter') if !$filter && isdbg('chanerr');
+ dbg("PCPROT: $self->{call}/" . $r->call . ' rejected by in_filter_route') if !$filter && isdbg('chanerr');
}
return $filter;
}