improve show/connect a bit
authorminima <minima>
Sun, 15 Apr 2001 17:35:52 +0000 (17:35 +0000)
committerminima <minima>
Sun, 15 Apr 2001 17:35:52 +0000 (17:35 +0000)
cmd/show/connect.pl
perl/Msg.pm

index 708113769fbb74008d17b6c8c493efd4909233ef..98211ddfd31b3dc9d6560fb8d0fa1d8119d703f1 100644 (file)
@@ -11,22 +11,27 @@ return (1, $self->msg('e5')) if $self->priv < 1;
 my @out;
 my $count;
 
-push @out, "Cnum Call      Address/Port              State  Type   Dir.";
+push @out, "Cnum Call      Address/Port              State  Type   Dir.     Module";
 
 foreach my $call (sort keys %Msg::conns) {
        my $r = $Msg::conns{$call};
-       my $addr = "$r->{peerhost}/$r->{peerport}";
        my $c = $call;
+       my $addr;
+       
        if ($c =~ /^Server\s+(\S+)$/) {
                $addr = $1;
                $c = "Server";
+       } else {
+               $addr = "$r->{peerhost}/$r->{peerport}";
        }
-       push @out,      sprintf(" %3d %-9s %-27.27s %3s %7s %8s", 
+       my $csort = $r->{csort} || '';
+       my $sort = $r->{sort} || '';
+       push @out,      sprintf(" %3d %-9s %-27.27s %3s %7s %8s %-8s", 
                                                $r->{cnum}, $c, 
                                                $addr, $r->{state}, 
-                                               $r->{csort}, $r->{sort});
+                                               $csort, $sort, ref $r);
 
        $count++;
 }
-push @out, "$count Connections";
+push @out, "$count Connections ($Msg::noconns Allocated)";
 return (1, @out);
index 6e2082e55ca86bcbaf1f1d221bd87625fb621eef..3b96c812e502b51b16f5b6a493cbae14aa3e4822 100644 (file)
@@ -16,7 +16,7 @@ use IO::Socket;
 use DXDebug;
 use Timer;
 
-use vars qw(%rd_callbacks %wt_callbacks %er_callbacks $rd_handles $wt_handles $er_handles $now %conns $noconns $blocking_supported);
+use vars qw(%rd_callbacks %wt_callbacks %er_callbacks $rd_handles $wt_handles $er_handles $now %conns $noconns $blocking_supported $cnum);
 
 %rd_callbacks = ();
 %wt_callbacks = ();
@@ -53,6 +53,8 @@ my $eagain = eval {EAGAIN()};
 my $einprogress = eval {EINPROGRESS()};
 my $ewouldblock = eval {EWOULDBLOCK()};
 $^W = $w;
+$cnum = 0;
+
 
 #
 #-----------------------------------------------------------------
@@ -73,9 +75,11 @@ sub new
                csort => 'telnet',
                timeval => 60,
                blocking => 0,
-               cnum => ++$noconns,
+               cnum => (($cnum < 999) ? (++$cnum) : ($cnum = 1)),
     };
 
+       $noconns++;
+       
        dbg('connll', "Connection created ($noconns)");
        return bless $conn, $class;
 }
@@ -119,7 +123,7 @@ sub conns
                $call = $pkg->{call} unless $call;
                return undef unless $call;
                dbg('connll', "changing $pkg->{call} to $call") if exists $pkg->{call} && $call ne $pkg->{call};
-               delete $conns{$pkg->{call}} if $pkg->{call} ne $call; 
+               delete $conns{$pkg->{call}} if exists $pkg->{call} && exists $conns{$pkg->{call}} && $pkg->{call} ne $call; 
                $pkg->{call} = $call;
                $ref = $conns{$call} = $pkg;
                dbg('connll', "Connection $pkg->{cnum} $call stored");