X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FMsg.pm;h=aa9993e7ff966bf2b15ae5d3dc9782e96a421271;hb=f47c97d80722ed7d1881afa7caa0e8d24b6b0a75;hp=61974b962160173f02e671c7986fe1ab6dbf148c;hpb=65c97626719e49d6c8cc04669af4289dd00e8e94;p=spider.git diff --git a/perl/Msg.pm b/perl/Msg.pm index 61974b96..aa9993e7 100644 --- a/perl/Msg.pm +++ b/perl/Msg.pm @@ -256,7 +256,7 @@ sub disconnect my $dbg = isdbg('connll'); my ($pkg, $fn, $line) = caller if $dbg; - if ($count > 2) { + if ($count >= 2) { dbg((ref $conn) . "::disconnect on call $conn->{call} attempt $conn->{disconnecting} called from ${pkg}::${fn} line $line FORCING CLOSE ") if $dbg; _close_it($conn); return; @@ -283,24 +283,7 @@ sub disconnect my $ref = $conns{$call}; delete $conns{$call} if $ref && $ref == $conn; } - - $conn->{delay} = Mojo::IOLoop->delay ( -# Mojo::IOLoop->delay ( - sub { - my $delay = shift; - dbg("before drain $call") if $dbg; - $sock->on(drain => $delay->begin); - 1; - }, - sub { - my $delay = shift; - dbg("before _close_it $call") if $dbg; - _close_it($conn); - 1; - } - ); - $conn->{delay}->wait; - + _close_it($conn); } else { dbg((ref $conn) . " socket missing on $conn->{call}") if $dbg; _close_it($conn); @@ -498,6 +481,7 @@ sub new_client { $sock->timeout(0); $sock->start; $conn->{peerhost} = $handle->peerhost; + $conn->{peerhost} =~ s|^::ffff:||; # chop off leading pseudo IPV6 stuff on dual stack listeners $conn->{peerport} = $handle->peerport; dbg((ref $conn) . " accept $conn->{cnum} from $conn->{peerhost}:$conn->{peerport}") if isdbg('connll'); my ($rproc, $eproc) = &{$server_conn->{rproc}} ($conn, $conn->{peerhost}, $conn->{peerport});