4644d5c9d6bd497dbe79524e410cf7bdeb065126
[spider.git] / cmd / show / connect.pl
1 #
2 # show active connections
3 #
4 # Copyright (c) 2001 Dirk Koopman G1TLH
5 #
6 # $Id$
7 #
8
9 my $self = shift;
10 return (1, $self->msg('e5')) if $self->priv < 1;
11 my @out;
12 my $count;
13
14 push @out, "Cnum Call      Address/Port              State  Type   Dir.     Module";
15
16 foreach my $call (sort keys %Msg::conns) {
17         my $r = $Msg::conns{$call};
18         my $c = $call;
19         my $addr;
20         
21         if ($c =~ /^Server\s+(\S+)/) {
22                 $addr = $1;
23                 $c = "Server";
24         } else {
25                 $addr = "AGW Port ($r->{agwport})" if exists $r->{agwport};
26                 $addr = "BPQ Stream ($r->{bpqstream})" if exists $r->{bpqstream};
27
28                 $addr ||= "$r->{peerhost}/$r->{peerport}";
29                 $addr ||= "Unknown";
30         }
31         my $csort = $r->{csort} || '';
32         my $sort = $r->{sort} || '';
33         push @out,      sprintf(" %3d %-9s %-27.27s %3s %7s %8s %-8s", 
34                                                 $r->{cnum}, $c, 
35                                                 $addr, $r->{state}, 
36                                                 $csort, $sort, ref $r);
37
38         $count++;
39 }
40 push @out, "$count Connections ($Msg::noconns Allocated)";
41 return (1, @out);