X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?p=spider.git;a=blobdiff_plain;f=cmd%2Flinks.pl;fp=cmd%2Flinks.pl;h=ed4082ff72a4e61af5df563a58c3181cb5a64752;hp=8856ba2703a6dd1ad6ae92c5148881d795ea0b3d;hb=4b207544da78b182bd12e94eab01451694749012;hpb=0bca43685143e42a93bdcdaa9e34e115b22552e9 diff --git a/cmd/links.pl b/cmd/links.pl index 8856ba27..ed4082ff 100644 --- a/cmd/links.pl +++ b/cmd/links.pl @@ -15,20 +15,22 @@ my $dxchan; my @out; my $nowt = time; -push @out, " Ave Obs Ping Next Filters"; -push @out, " Callsign Type Started RTT Count Int. Ping Iso? In Out PC92? Address"; +push @out, " Ave Obs Ping Next Filters"; +push @out, " Callsign Type Started Uptime RTT Count Int. Ping Iso? In Out PC92? Address"; -foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all_nodes ) { - my $call = $dxchan->call(); +foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all ) { next if $dxchan == $main::me; + next unless $dxchan->is_node || $dxchan->is_rbn; + my $call = $dxchan->call(); my $t = cldatetime($dxchan->startt); my $sort; my $name = $dxchan->user->name || " "; 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("%8.2f",$dxchan->pingave) : ""; - my $iso = $dxchan->isolate ? 'Y' :' '; + my $ping = sprintf("%7.2f", $dxchan->pingave || 0); + my $iso = $dxchan->isolate ? 'Y' : ' '; + my $uptime = difft($dxchan->startt, 1); my ($fin, $fout, $pc92) = (' ', ' ', ' '); if ($dxchan->do_pc9x) { $pc92 = 'Y'; @@ -41,27 +43,28 @@ foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all_nodes ) { $fout = $dxchan->routefilter =~ /node_default/ ? 'D' : 'Y'; } } - unless ($pingint) { + unless ($pingint && $ping) { $lastt = 0; - $ping = " "; + $ping = ' '; + $obscount = ' '; } - $sort = 'ANEA' if $dxchan->is_aranea; $sort = "DXSP" if $dxchan->is_spider; $sort = "CLX " if $dxchan->is_clx; $sort = "DXNT" if $dxchan->is_dxnet; $sort = "AR-C" if $dxchan->is_arcluster; $sort = "AK1A" if $dxchan->is_ak1a; + $sort = "RBN " if $dxchan->is_rbn; my $ipaddr; - if ($dxchan->conn->peerhost) { - my $addr = $dxchan->conn->peerhost; - $ipaddr = $addr if is_ipaddr($addr); + my $addr = $dxchan->hostname; + if ($addr) { + $ipaddr = $addr if is_ipaddr($addr); $ipaddr = 'local' if $addr =~ /^127\./ || $addr =~ /^::[0-9a-f]+$/; } $ipaddr = 'ax25' if $dxchan->conn->ax25; - push @out, sprintf "%10s $sort $t$ping $obscount %5d %5d $iso $fin $fout $pc92 $ipaddr", $call, $pingint, $lastt; + push @out, sprintf "%10s $sort $t%13s$ping $obscount %5d %5d $iso $fin $fout $pc92 $ipaddr", $call, $uptime ,$pingint, $lastt; } return (1, @out)