$self->{width} = 80 unless $self->{width} && $self->{width} > 80;
$self->{consort} = $line; # save the connection type
- LogDbg('DXCommand', "$call connected from $self->{hostname}");
+ LogDbg('err', "$call connected from $self->{hostname}");
# set some necessary flags on the user if they are connecting
$self->{registered} = 1;
$self->{priv} = 0;
# get the filters
- my $nossid = $call;
- $nossid =~ s/-\d+$//;
+# $self->{inrbnfilter} = Filter::read_in('rbn', $call, 1)
+# || Filter::read_in('rbn', 'node_default', 1);
- $self->{inrbnfilter} = Filter::read_in('rbn', $call, 1)
- || Filter::read_in('rbn', 'node_default', 1);
+ Filter::load_dxchan($self, 'rbn', 1);
# clean up qra locators
my $qra = $user->qra;
my (undef, undef, $origin, $qrg, $call, $mode, $s, $m, $spd, $u, $sort, $t, $tx) = split /[:\s]+/, $line;
+ # fix up "direct" (from a "skimmer server") connections
+ # basically the $mode is missing so everything is shifted down one
+ # so "cheat" and modify the line and do it again
+ if ($mode =~ /^\d+$/) {
+ $line =~ s/ $mode\s+dB/CW $mode dB/i;
+ (undef, undef, $origin, $qrg, $call, $mode, $s, $m, $spd, $u, $sort, $t, $tx) = split /[:\s]+/, $line;
+ dbg "RBN: inserted CW for missing mode" if $dbgrbn;
+ }
+
# fix up FT8 spots from 7001
$t = $u, $u = '' if !$t && is_ztime($u);
$t = $sort, $sort = '' if !$t && is_ztime($sort);
dbg("seeme: result '$buf'") if isdbg('seeme');
$uchan->local_send('S', $buf);
} else {
- LogDbg("RBN Someone is playing silly persons $rcall is not a user and cannot do 'seeme', ignored and reset");
+ LogDbg('err',"RBN Someone is playing silly persons $rcall is not a user and cannot do 'seeme', ignored and reset");
del_seeme($rcall);
}
}
next unless $dxchan->is_rbn;
dbg "RBN:STATS minute $dxchan->{call} raw: $dxchan->{noraw} retrieved spots: $dxchan->{norbn} delivered: $dxchan->{nospot} after filtering to users: " . scalar keys %{$dxchan->{nousers}} if isdbg('rbnstats');
if ($dxchan->{noraw} == 0 && $dxchan->{lasttime} > 60) {
- LogDbg('RBN', "RBN: no input from $dxchan->{call}, disconnecting");
+ LogDbg('err', "RBN: no input from $dxchan->{call}, disconnecting");
$dxchan->disconnect;
}
$dxchan->{noraw} = $dxchan->{norbn} = $dxchan->{nospot} = 0; $dxchan->{nousers} = {};
sub write_cache
{
+ return unless $json;
+
my $ta = [ gettimeofday ];
+
$json->indent(1)->canonical(1) if isdbg 'rbncache';
my $s = eval {$json->encode($spots)};
if ($s) {