X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FThingy%2FRouteFilter.pm;h=9a002c89bf81c81d7e045601fd48400bf684e779;hb=14a47618833cb6212d88973a6a23b1ebd6249422;hp=0e5bf3e8ce3a0dec514a78f80bdd3edee398b2e3;hpb=4d22d5fd3874e8292d82f84a777b99ff7d10402a;p=spider.git diff --git a/perl/Thingy/RouteFilter.pm b/perl/Thingy/RouteFilter.pm index 0e5bf3e8..9a002c89 100644 --- a/perl/Thingy/RouteFilter.pm +++ b/perl/Thingy/RouteFilter.pm @@ -28,10 +28,13 @@ use vars qw(@ISA); sub _filter { my $dxchan = shift; - my $r = shift; + my @out; - my ($filter, $hops) = $dxchan->{inroutefilter}->it($dxchan->{call}, $dxchan->{dxcc}, $dxchan->{itu}, $dxchan->{cq}, $r->{call}, $r->{dxcc}, $r->{itu}, $r->{cq}, $dxchan->{state}, $r->{state}); - return $filter ? $r : undef; + foreach my $r (@_) { + my ($filter, $hops) = $dxchan->{routefilter}->it($dxchan->{call}, $dxchan->{dxcc}, $dxchan->{itu}, $dxchan->{cq}, $r->{call}, $r->{dxcc}, $r->{itu}, $r->{cq}, $dxchan->{state}, $r->{state}); + push @out, $r if $filter; + } + return @out; } sub gen_DXProt @@ -39,7 +42,7 @@ sub gen_DXProt my $thing = shift; my @out; push @out, DXProt::pc21(@{$thing->{fpc21n}}) if $thing->{fpc21n}; - push @out, DXProt::pc17($thing->{fpc17n}, $thing->{pc17u}) if $thing->{fpc17n}; + push @out, DXProt::pc17($thing->{fpc17n}, @{$thing->{pc17u}}) if $thing->{fpc17n}; push @out, DXProt::pc19(@{$thing->{fpc19n}}) if $thing->{fpc19n}; push @out, DXProt::pc16($thing->{fpc16n}, @{$thing->{pc16u}}) if $thing->{fpc16n}; return \@out; @@ -87,8 +90,10 @@ sub out_filter $thing->{fpc16n} = _filter($dxchan, $thing->{pc16n}) if $thing->{pc16n}; $thing->{fpc17n} = _filter($dxchan, $thing->{pc17n}) if $thing->{pc17n}; - $thing->{fpc19n} = [_filter($dxchan, @{$thing->{pc19n}})] if $thing->{pc19n}; - $thing->{fpc21n} = [_filter($dxchan, @{$thing->{pc21n}})] if $thing->{pc21n}; + my @pc19 = _filter($dxchan, @{$thing->{pc19n}}) if $thing->{pc19n}; + $thing->{fpc19n} = \@pc19 if @pc19; + my @pc21 = _filter($dxchan, @{$thing->{pc21n}}) if $thing->{pc21n}; + $thing->{fpc21n} = \@pc21 if @pc21; } return 1;