projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add dxweb app
[spider.git]
/
perl
/
Msg.pm
diff --git
a/perl/Msg.pm
b/perl/Msg.pm
index b64318ff19c01d68f6d5312403493d056a81c1bf..df4edd3606f0d90ae1faaf3bf07415e2ed50d558 100644
(file)
--- a/
perl/Msg.pm
+++ b/
perl/Msg.pm
@@
-136,8
+136,8
@@
sub _on_connect
undef $conn->{sock};
my $sock = $conn->{sock} = Mojo::IOLoop::Stream->new($handle);
$sock->on(read => sub {$conn->_rcv($_[1]);} );
undef $conn->{sock};
my $sock = $conn->{sock} = Mojo::IOLoop::Stream->new($handle);
$sock->on(read => sub {$conn->_rcv($_[1]);} );
- $sock->on(error => sub {$conn->disconnect;});
- $sock->on(close => sub {$conn->disconnect;});
+ $sock->on(error => sub {
delete $conn->{sock};
$conn->disconnect;});
+ $sock->on(close => sub {
delete $conn->{sock};
$conn->disconnect;});
$sock->timeout(0);
$sock->start;
$conn->{peerhost} = eval { $handle->peerhost; };
$sock->timeout(0);
$sock->start;
$conn->{peerhost} = eval { $handle->peerhost; };
@@
-278,6
+278,9
@@
sub _send_stuff
my $conn = shift;
my $rq = $conn->{outqueue};
my $sock = $conn->{sock};
my $conn = shift;
my $rq = $conn->{outqueue};
my $sock = $conn->{sock};
+ return unless defined $sock;
+ return if $conn->{disconnecting};
+
while (@$rq) {
my $data = shift @$rq;
my $lth = length $data;
while (@$rq) {
my $data = shift @$rq;
my $lth = length $data;
@@
-289,7
+292,7
@@
sub _send_stuff
}
if (defined $sock) {
$sock->write($data);
}
if (defined $sock) {
$sock->write($data);
- $total_out = $lth;
+ $total_out
+
= $lth;
} else {
dbg("_send_stuff $call ending data ignored: $data");
}
} else {
dbg("_send_stuff $call ending data ignored: $data");
}
@@
-377,6
+380,9
@@
sub _rcv { # Complement to _send
my $msg = shift;
my $sock = $conn->{sock};
return unless defined($sock);
my $msg = shift;
my $sock = $conn->{sock};
return unless defined($sock);
+ return if $conn->{disconnecting};
+
+ $total_in += length $msg;
my @lines;
if (isdbg('raw')) {
my @lines;
if (isdbg('raw')) {