--- loncom/Attic/lonc	2002/05/11 21:17:39	1.40
+++ loncom/Attic/lonc	2003/02/24 19:56:30	1.47
@@ -5,7 +5,7 @@
 # provides persistent TCP connections to the other servers in the network
 # through multiplexed domain sockets
 #
-# $Id: lonc,v 1.40 2002/05/11 21:17:39 harris41 Exp $
+# $Id: lonc,v 1.47 2003/02/24 19:56:30 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -37,18 +37,14 @@
 # 6/4/99,6/5,6/7,6/8,6/9,6/10,6/11,6/12,7/14,7/19,
 # 10/8,10/9,10/15,11/18,12/22,
 # 2/8,7/25 Gerd Kortemeyer
-# 12/05 Scott Harrison
 # 12/05 Gerd Kortemeyer
 # YEAR=2001
-# 01/10/01 Scott Harrison
 # 03/14/01,03/15,06/12,11/26,11/27,11/28 Gerd Kortemeyer
-# 12/20 Scott Harrison
 # YEAR=2002
 # 2/19/02,02/22/02,02/25/02 Gerd Kortemeyer
 # 3/07/02 Ron Fox 
 # based on nonforker from Perl Cookbook
 # - server who multiplexes without forking
-# 5/11/2002 Scott Harrison
 
 use lib '/home/httpd/lib/perl/';
 use LONCAPA::Configuration;
@@ -75,9 +71,9 @@ $DEBUG = 0;			# Set to 1 for annoyingly
 $SIG{QUIT}=\&catchexception;
 $SIG{__DIE__}=\&catchexception;
 
-# ------------------------------------------- Read access.conf and loncapa.conf
-&status("Read access.conf and loncapa.conf");
-my $perlvarref=LONCAPA::Configuration::read_conf('access.conf','loncapa.conf');
+# ---------------------------------- Read loncapa_apache.conf and loncapa.conf
+&status("Read loncapa.conf and loncapa_apache.conf");
+my $perlvarref=LONCAPA::Configuration::read_conf('loncapa.conf');
 my %perlvar=%{$perlvarref};
 undef $perlvarref;
 
@@ -259,7 +255,7 @@ unlink($port);
     @allbuffered=grep /\.$conserver$/, readdir DIRHANDLE;
     closedir(DIRHANDLE);
     my $dfname;
-    foreach (@allbuffered) {
+    foreach (sort @allbuffered) {
         &status("Sending delayed: $_");
         $dfname="$path/$_";
         if($DEBUG) { &logthis('Sending '.$dfname); }
@@ -329,7 +325,7 @@ tie %ready, 'Tie::RefHash';
 
 # Main loop: check reads/accepts, check writes, check ready to process
 
-status("Main loop");
+status("Main loop $conserver");
 while (1) {
     my $client;
     my $rv;
@@ -369,6 +365,8 @@ while (1) {
 	}
 	$servers{$client->fileno} = $client;
 	nonblock($client);
+	$client->sockopt(SO_KEEPALIVE, 1);# Enable monitoring of
+	                                  # connection liveness.
     }
     HandleInput($infdset, \%servers, \%inbuffer, \%outbuffer, \%ready);
     HandleOutput($outfdset, \%servers, \%outbuffer, \%inbuffer,
@@ -704,7 +702,7 @@ sub openremote {
 
     my $conserver=shift;
 
-&status("Opening TCP");
+&status("Opening TCP $conserver");
     my $st=120+int(rand(240)); # Sleep before opening:
 
 unless (
@@ -744,7 +742,7 @@ if ($answer ne 'ok') {
 }
 
 sleep 5;
-&status("Ponging");
+&status("Ponging $conserver");
 print $remotesock "pong\n";
 $answer=<$remotesock>;
 chomp($answer);
@@ -977,12 +975,12 @@ sub londtransaction {
 	    alarm(0);
 	};
     } else {
-	if($DEBUG) {
-	    &logthis("Timeout on send in londtransaction");
-	}
+	&logthis("lonc - suiciding on send Timeout");
+	die("lonc - suiciding on send Timeout");
     }
-    if( ($@ =~ /timeout/)  && ($DEBUG)) {
-	&logthis("Timeout on receive in londtransaction");
+    if ($@ =~ /timeout/) {
+	&logthis("lonc - suiciding on send Timeout");
+	die("lonc - suiciding on send Timeout");
     }
     #
     # Restore the initial sigmask set.
@@ -1037,6 +1035,7 @@ sub status {
     my $now=time;
     my $local=localtime($now);
     $status=$local.': '.$what;
+    $0='lonc: '.$what.' '.$local;
 }