X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=3767145ca4277463ca60fe172db9b695f57b8320;hb=877fab7416e9545aeae5b9880246262bc92be650;hp=dffb2055407c700ea8fe831d95241b7c630d2d93;hpb=eca912fbdcba8f6ee91f757aac3bf95f4d6bafab;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index dffb2055..3767145c 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -388,7 +388,7 @@ sub normal 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; } } @@ -502,7 +502,7 @@ sub normal 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; } } @@ -648,22 +648,21 @@ sub normal # 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; @@ -1759,7 +1758,7 @@ sub send_route 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'); @@ -1851,7 +1850,7 @@ sub in_filter_route 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; }