mega-merge of major parts of mojo
[spider.git] / cmd / who.pl
index 1ccf9ca8a39bb5b00a055e1d107451c97ba93ad0..4371b08d3ed3e28afbf162129eaabc11e2afb65b 100644 (file)
@@ -1,35 +1,44 @@
-#
-# who : is online
-# a complete list of stations connected
-#
-# Copyright (c) 1999 Dirk Koopman G1TLH
-#
-# $Id$
-
-
-my $self = shift;
-my $dxchan;
-my @out;
-
-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->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_node && $dxchan != $DXProt::me ? sprintf("%5.2f", $dxchan->pingave) : "     ";
-       my $conn = $dxchan->conn;
-       my $ip = $conn->{peerhost} || '' if $conn;
-       push @out, sprintf "%10s $type $sort $t %-10.10s $ping $ip", $call, $name;
-}
-
-return (1, @out)
+#\r
+# who : is online\r
+# a complete list of stations connected\r
+#\r
+# Copyright (c) 1999 Dirk Koopman G1TLH\r
+#\r
+#\r
+\r
+\r
+my $self = shift;\r
+my $dxchan;\r
+my @out;\r
+\r
+push @out, "  Callsign Type      Started           Name     Ave RTT Link";\r
+\r
+foreach $dxchan ( sort {$a->call cmp $b->call} DXChannel::get_all ) {\r
+    my $call = $dxchan->call();\r
+       my $t = cldatetime($dxchan->startt);\r
+       my $type = $dxchan->is_node ? "NODE" : "USER";\r
+       my $sort = "    ";\r
+       if ($dxchan->is_node) {\r
+               $sort = "DXSP" if $dxchan->is_spider;\r
+               $sort = "CLX " if $dxchan->is_clx;\r
+               $sort = "DXNT" if $dxchan->is_dxnet;\r
+               $sort = "AR-C" if $dxchan->is_arcluster;\r
+               $sort = "AK1A" if $dxchan->is_ak1a;\r
+       } else {\r
+               $sort = "LOCL" if $dxchan->conn->isa('IntMsg');\r
+               $sort = "WEB " if $dxchan->is_web;\r
+               $sort = "EXT " if $dxchan->conn->isa('ExtMsg');\r
+               $type = "RBN " if $dxchan->is_rbn;              # Yes, this is NOT a typo\r
+       }\r
+       my $name = $dxchan->user->name || " ";\r
+       my $ping = $dxchan->is_node && $dxchan != $main::me ? sprintf("%5.2f", $dxchan->pingave) : "     ";\r
+       my $conn = $dxchan->conn;\r
+       my $ip = '';\r
+       if ($conn) {\r
+               $ip = $dxchan->hostname;\r
+               $ip = "AGW Port ($conn->{agwport})" if exists $conn->{agwport};\r
+       }\r
+       push @out, sprintf "%10s $type $sort $t %-10.10s $ping $ip", $call, $name;\r
+}\r
+\r
+return (1, @out)\r