minor corrections to manuals
[spider.git] / cmd / who.pl
index beea0071703f1d5be284d080d9407c4da1b46bfd..6ec7dba36a9b97a7f2776156f0b0fc30cf3f378d 100644 (file)
@@ -11,16 +11,26 @@ my $self = shift;
 my $dxchan;
 my @out;
 
-push @out, "  Callsign Type Started           Name";
+push @out, "  Callsign Type      Started           Name     Ave RTT Link";
 
 foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all ) {
     my $call = $dxchan->call();
-       my $t = cldatetime($dxchan->user->lastin);
-       my $sort = $dxchan->is_ak1a() ? "NODE" : "USER";
+       my $t = cldatetime($dxchan->startt);
+       my $type = $dxchan->is_node ? "NODE" : "USER";
+       my $sort = "    ";
+       if ($dxchan->is_node) {
+               $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;
+       }
        my $name = $dxchan->user->name || " ";
-       my $ping = $dxchan->is_ak1a ? sprintf("(rtt %.2f secs)", $dxchan->pingave) : "";
-       $ping = "" if $dxchan->call eq $main::mycall;
-       push @out, sprintf "%10s $sort $t $name $ping", $call;
+       my $ping = $dxchan->is_node && $dxchan != $main::me ? sprintf("%5.2f", $dxchan->pingave) : "     ";
+       my $conn = $dxchan->conn;
+       my $ip = '';
+       $ip = $conn->{peerhost} if $conn && $conn->{peerhost};
+       push @out, sprintf "%10s $type $sort $t %-10.10s $ping $ip", $call, $name;
 }
 
 return (1, @out)