Add incoming RBN filtering from the RBN servers.
Use spot filtering if there is no RBN specific filtering.
Fix formatting issues in the 'links' command for isolated and skimmer nodes.
my $obscount = $dxchan->nopings;
my $pingint = $dxchan->pingint;
my $lastt = $dxchan->lastping ? ($dxchan->pingint - ($nowt - $dxchan->lastping)) : $pingint;
my $obscount = $dxchan->nopings;
my $pingint = $dxchan->pingint;
my $lastt = $dxchan->lastping ? ($dxchan->pingint - ($nowt - $dxchan->lastping)) : $pingint;
- my $ping = $dxchan->is_node && $dxchan != $main::me ? sprintf("%7.2f",$dxchan->pingave) : "";
+ my $ping = sprintf("%7.2f", $dxchan->pingave || 0);
my $iso = $dxchan->isolate ? 'Y' : ' ';
my $uptime = difft($dxchan->startt, 1);
my ($fin, $fout, $pc92) = (' ', ' ', ' ');
my $iso = $dxchan->isolate ? 'Y' : ' ';
my $uptime = difft($dxchan->startt, 1);
my ($fin, $fout, $pc92) = (' ', ' ', ' ');
$fout = $dxchan->routefilter =~ /node_default/ ? 'D' : 'Y';
}
}
$fout = $dxchan->routefilter =~ /node_default/ ? 'D' : 'Y';
}
}
+ unless ($pingint && $ping) {
+ $ping = ' ';
+ $obscount = ' ';
}
$sort = "DXSP" if $dxchan->is_spider;
}
$sort = "DXSP" if $dxchan->is_spider;
|| Filter::read_in('ann', 'user_default', 0) ;
$self->{rbnfilter} = Filter::read_in('rbn', $call, 0)
|| Filter::read_in('rbn', $nossid, 0)
|| Filter::read_in('ann', 'user_default', 0) ;
$self->{rbnfilter} = Filter::read_in('rbn', $call, 0)
|| Filter::read_in('rbn', $nossid, 0)
- || Filter::read_in('spots', $call, 0)
- || Filter::read_in('spots', $nossid, 0)
- || Filter::read_in('rbn', 'user_default', 0)
- || Filter::read_in('spots', 'user_default', 0);
+ || Filter::read_in('rbn', 'user_default', 0);
# clean up qra locators
my $qra = $user->qra;
# clean up qra locators
my $qra = $user->qra;
my $pkg = shift;
my $call = shift;
my $pkg = shift;
my $call = shift;
- DXProt::_add_thingy($main::routeroot, [$call, 0, 0, 1, undef, undef, $self->hostname], );
- $self->{d} = {};
+# DXProt::_add_thingy($main::routeroot, [$call, 0, 0, 1, undef, undef, $self->hostname], );
$self->{spot} = {};
$self->{last} = 0;
$self->{noraw} = 0;
$self->{spot} = {};
$self->{last} = 0;
$self->{noraw} = 0;
my $user = $self->{user};
my $call = $self->{call};
my $name = $user->{name};
my $user = $self->{user};
my $call = $self->{call};
my $name = $user->{name};
- my $dref = $self->{d};
- my $spotref = $self->{spot};
# log it
my $host = $self->{conn}->peerhost;
# log it
my $host = $self->{conn}->peerhost;
# get the filters
my $nossid = $call;
$nossid =~ s/-\d+$//;
# get the filters
my $nossid = $call;
$nossid =~ s/-\d+$//;
-
- $self->{spotsfilter} = Filter::read_in('spots', $call, 0)
- || Filter::read_in('spots', $nossid, 0)
- || Filter::read_in('spots', 'user_default', 0);
+ $self->{inrbnfilter} = Filter::read_in('rbn', $call, 1)
+ || Filter::read_in('rbn', 'node_default', 1);
+
# clean up qra locators
my $qra = $user->qra;
$qra = undef if ($qra && !DXBearing::is_qra($qra));
# clean up qra locators
my $qra = $user->qra;
$qra = undef if ($qra && !DXBearing::is_qra($qra));
my $r = [$origin, nearest(.1, $qrg), $call, $mode, $s, $t, $utz, $respot, $u];
dbg("RBN: key: '$sp' ADD RECORD call: $call qrg: $qrg origin: $origin") if isdbg('rbn');
my @s = Spot::prepare($r->[1], $r->[2], $r->[6], '', $r->[0]);
my $r = [$origin, nearest(.1, $qrg), $call, $mode, $s, $t, $utz, $respot, $u];
dbg("RBN: key: '$sp' ADD RECORD call: $call qrg: $qrg origin: $origin") if isdbg('rbn');
my @s = Spot::prepare($r->[1], $r->[2], $r->[6], '', $r->[0]);
+ if ($self->{inrbnfilter}) {
+ my ($want, undef) = $self->{inrbnfilter}->it($s);
+ next unless $want;
+ }
$r->[9] = \@s;
push @$spot, $r;
$r->[9] = \@s;
push @$spot, $r;
++$qrg{$s->[0]}; # and the qrg
++$qrg{$s->[0]}; # and the qrg
- my $filter = 0;
-
- if ($dxchan->{rbnfilter}) {
- ($filter, undef) = $dxchan->{rbnfilter}->it($s);
- next unless $filter;
+ my $want = 0;
+ my $rf = $dxchan->{rbnfilter} || $dxchan->{spotsfilter};
+ if ($rf) {
+ ($want, undef) = $rf->it($s);
+ next unless $want;
$saver = $s;
dbg("RBN: FILTERED call: $s->[1] qrg: $s->[0] origin: $s->[4] dB: $r->[4]") if isdbg 'rbn';
last;
$saver = $s;
dbg("RBN: FILTERED call: $s->[1] qrg: $s->[0] origin: $s->[4] dB: $r->[4]") if isdbg 'rbn';
last;
dbg("RBN: SENDING call: $saver->[1] qrg: $saver->[0] origin: $saver->[4] $saver->[3]") if isdbg 'rbn';
if ($dxchan->{ve7cc}) {
dbg("RBN: SENDING call: $saver->[1] qrg: $saver->[0] origin: $saver->[4] $saver->[3]") if isdbg 'rbn';
if ($dxchan->{ve7cc}) {
- my $call = $saver->[1];
- $saver->[1] .= '-#';
+ my $call = $saver->[4];
+ $saver->[4] .= '-#';
$buf = VE7CC::dx_spot($dxchan, @$saver);
$buf = VE7CC::dx_spot($dxchan, @$saver);
} else {
$buf = $dxchan->format_dx_spot(@$saver);
}
} else {
$buf = $dxchan->format_dx_spot(@$saver);
}