projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix users delete? messages, local::pcprot()
[spider.git]
/
perl
/
Msg.pm
diff --git
a/perl/Msg.pm
b/perl/Msg.pm
index 3e30372ff1111bbac4923b6837c5a01618d8d620..9a6f8d1f06894cd25d749afc9d2bac8019fd132d 100644
(file)
--- a/
perl/Msg.pm
+++ b/
perl/Msg.pm
@@
-18,11
+18,12
@@
use Mojo::IOLoop;
use Mojo::IOLoop::Stream;
use DXDebug;
use Mojo::IOLoop::Stream;
use DXDebug;
-use Timer;
+use
DX
Timer;
-use vars qw($now %conns $noconns $cnum $total_in $total_out $connect_timeout $disc_waittime);
+use vars qw($now %conns $noconns $cnum $total_in $total_out $
total_lines_in $total_lines_out $
connect_timeout $disc_waittime);
$total_in = $total_out = 0;
$total_in = $total_out = 0;
+$total_lines_in = $total_lines_out = 0;
$now = time;
$now = time;
@@
-43,15
+44,19
@@
sub new
my $class = $obj || $pkg;
my $conn = {
my $class = $obj || $pkg;
my $conn = {
- rproc => $rproc,
- inqueue => [],
- outqueue => [],
- state => 0,
- lineend => "\r\n",
- csort => 'telnet',
- timeval => 60,
- blocking => 0,
- cnum => (($cnum < 999) ? (++$cnum) : ($cnum = 1)),
+ rproc => $rproc,
+ inqueue => [],
+ outqueue => [],
+ state => 0,
+ lineend => "\r\n",
+ csort => 'telnet',
+ timeval => 60,
+ blocking => 0,
+ cnum => (($cnum < 999) ? (++$cnum) : ($cnum = 1)),
+ linesin => 0,
+ linesout => 0,
+ datain => 0,
+ dataout => 0,
};
$noconns++;
};
$noconns++;
@@
-128,6
+133,7
@@
sub peerhost
$conn->{peerhost} ||= $conn->{sock}->handle->peerhost if $conn->{sock};
$conn->{peerhost} ||= 'UNKNOWN';
}
$conn->{peerhost} ||= $conn->{sock}->handle->peerhost if $conn->{sock};
$conn->{peerhost} ||= 'UNKNOWN';
}
+ $conn->{peerhost} =~ s/^::ffff://;
return $conn->{peerhost};
}
return $conn->{peerhost};
}
@@
-286,7
+292,8
@@
sub disconnect
dbg("Buffer empty, just close $call") if $dbg;
_close_it($conn);
}
dbg("Buffer empty, just close $call") if $dbg;
_close_it($conn);
}
- } else {
+ }
+ else {
dbg((ref $conn) . " socket missing on $conn->{call}") if $dbg;
_close_it($conn);
}
dbg((ref $conn) . " socket missing on $conn->{call}") if $dbg;
_close_it($conn);
}
@@
-315,7
+322,7
@@
sub _close_it
if ($sock) {
dbg((ref $conn) . " Connection $conn->{cnum} $call closing gracefully") if isdbg('connll');
if ($sock) {
dbg((ref $conn) . " Connection $conn->{cnum} $call closing gracefully") if isdbg('connll');
- $sock->close_gracefully;
+ $sock->close_gracefully
if $sock->can('close_gracefully')
;
}
# get rid of any references
}
# get rid of any references
@@
-350,6
+357,9
@@
sub _send_stuff
if (defined $sock) {
$sock->write($data);
$total_out += $lth;
if (defined $sock) {
$sock->write($data);
$total_out += $lth;
+ $conn->{dataout} += $lth;
+ ++$conn->{linesout};
+ ++$total_lines_out;
} else {
dbg("_send_stuff $call ending data ignored: $data");
}
} else {
dbg("_send_stuff $call ending data ignored: $data");
}
@@
-425,6
+435,8
@@
sub dequeue
} else {
$conn->{msg} = pop @lines;
}
} else {
$conn->{msg} = pop @lines;
}
+ $conn->{linesin} += @lines;
+ $total_lines_in += @lines;
for (@lines) {
last if $conn->{disconnecting};
&{$conn->{rproc}}($conn, defined $_ ? $_ : '');
for (@lines) {
last if $conn->{disconnecting};
&{$conn->{rproc}}($conn, defined $_ ? $_ : '');
@@
-440,8
+452,8
@@
sub _rcv { # Complement to _send
return if $conn->{disconnecting};
$total_in += length $msg;
return if $conn->{disconnecting};
$total_in += length $msg;
+ $conn->{datain} += length $msg;
- my @lines;
if (isdbg('raw')) {
my $call = $conn->{call} || 'none';
my $lth = length $msg;
if (isdbg('raw')) {
my $call = $conn->{call} || 'none';
my $lth = length $msg;
@@
-560,7
+572,8
@@
sub DESTROY
my $sock = $conn->{sock};
if ($sock) {
my $sock = $conn->{sock};
if ($sock) {
- $sock->close_gracefully;
+ $sock->close_gracefully if $sock->can('close_gracefully');
+ delete $conn->{sock};
}
$noconns--;
}
$noconns--;