From 6374fb31da62987e676244c38eb6cf73c81bf891 Mon Sep 17 00:00:00 2001 From: minima Date: Sun, 15 Apr 2001 17:35:52 +0000 Subject: [PATCH] improve show/connect a bit --- cmd/show/connect.pl | 15 ++++++++++----- perl/Msg.pm | 10 +++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/cmd/show/connect.pl b/cmd/show/connect.pl index 70811376..98211ddf 100644 --- a/cmd/show/connect.pl +++ b/cmd/show/connect.pl @@ -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); diff --git a/perl/Msg.pm b/perl/Msg.pm index 6e2082e5..3b96c812 100644 --- a/perl/Msg.pm +++ b/perl/Msg.pm @@ -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"); -- 2.43.0