--- loncom/lonnet/perl/lonnet.pm 2002/02/19 21:53:42 1.202 +++ loncom/lonnet/perl/lonnet.pm 2002/02/25 14:33:58 1.203 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.202 2002/02/19 21:53:42 matthew Exp $ +# $Id: lonnet.pm,v 1.203 2002/02/25 14:33:58 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -138,7 +138,22 @@ sub subreply { sub reply { my ($cmd,$server)=@_; my $answer=subreply($cmd,$server); - if ($answer eq 'con_lost') { $answer=subreply($cmd,$server); } + if ($answer eq 'con_lost') { + sleep 5; + $answer=subreply($cmd,$server); + if ($answer eq 'con_lost') { + &logthis("Second attempt con_lost on $server"); + my $peerfile="$perlvar{'lonSockDir'}/$server"; + my $client=IO::Socket::UNIX->new(Peer =>"$peerfile", + Type => SOCK_STREAM, + Timeout => 10) + or return "con_lost"; + &logthis("Killing socket"); + print $client "close_connection_exit\n"; + sleep 5; + $answer=subreply($cmd,$server); + } + } if (($answer=~/^refused/) || ($answer=~/^rejected/)) { &logthis("WARNING:". " $cmd to $server returned $answer");