--- loncom/Attic/lonc 2003/07/31 21:32:44 1.53 +++ loncom/Attic/lonc 2003/10/24 16:36:14 1.56 @@ -5,7 +5,7 @@ # provides persistent TCP connections to the other servers in the network # through multiplexed domain sockets # -# $Id: lonc,v 1.53 2003/07/31 21:32:44 albertel Exp $ +# $Id: lonc,v 1.56 2003/10/24 16:36:14 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -124,7 +124,7 @@ close(CONFIG); %childatt = (); # number of attempts to start server # for ID -$childmaxattempts=5; +$childmaxattempts=15; # ---------------------------------------------------- Fork once and dissociate &status("Fork and dissociate"); @@ -361,13 +361,17 @@ while (1) { # accept a new connection &status("Accept new connection: $conserver"); $client = $server->accept(); - if($DEBUG) { - &logthis("New client fd = ".$client->fileno."\n"); + if (!$client) { + &logthis("Got stupid nonexisent client on ".$server->fileno." $conserver \n"); + } else { + if($DEBUG) { + &logthis("New client fd = ".$client->fileno."\n"); + } + $servers{$client->fileno} = $client; + nonblock($client); + $client->sockopt(SO_KEEPALIVE, 1); # Enable monitoring of + # connection liveness. } - $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, @@ -638,7 +642,7 @@ sub handle { $request="enc:$cmdlength:$encrequest"; } # --------------------------------------------------------------- Main exchange - $answer = londtransaction($remotesock, $request, 300); + $answer = londtransaction($remotesock, $request, 60); if($DEBUG) { &logthis(" Request data exchange complete"); @@ -707,7 +711,7 @@ sub openremote { my $st=120+int(rand(240)); # Sleep before opening: unless ( - $remotesock = IO::Socket::INET->new(PeerAddr => $hostip{$conserver}, + $remotesock = IO::Socket::INET->new(PeerAddr => $hostname{$conserver}, PeerPort => $perlvar{'londPort'}, Proto => "tcp", Type => SOCK_STREAM) @@ -988,12 +992,12 @@ sub londtransaction { alarm(0); }; } else { - &logthis("lonc - suiciding on send Timeout"); - die("lonc - suiciding on send Timeout"); + &logthis("lonc - $conserver - suiciding on send Timeout"); + die("lonc - $conserver - suiciding on send Timeout"); } if ($@ =~ /timeout/) { - &logthis("lonc - suiciding on read Timeout"); - die("lonc - suiciding on read Timeout"); + &logthis("lonc - $conserver - suiciding on read Timeout"); + die("lonc - $conserver - suiciding on read Timeout"); } # # Restore the initial sigmask set.