[LON-CAPA-cvs] cvs: loncom /lonnet/perl lonnet.pm

www lon-capa-cvs@mail.lon-capa.org
Mon, 25 Feb 2002 14:33:58 -0000


www		Mon Feb 25 09:33:58 2002 EDT

  Modified files:              
    /loncom/lonnet/perl	lonnet.pm 
  Log:
  Attempt to shut down lonc child from within lonnet if connection broken
  
  
Index: loncom/lonnet/perl/lonnet.pm
diff -u loncom/lonnet/perl/lonnet.pm:1.202 loncom/lonnet/perl/lonnet.pm:1.203
--- loncom/lonnet/perl/lonnet.pm:1.202	Tue Feb 19 16:53:42 2002
+++ loncom/lonnet/perl/lonnet.pm	Mon Feb 25 09:33:58 2002
@@ -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 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("<font color=blue>WARNING:".
                 " $cmd to $server returned $answer</font>");