--- loncom/lond 2002/02/05 18:05:47 1.66 +++ loncom/lond 2002/02/06 14:18:09 1.68.2.1 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.66 2002/02/05 18:05:47 www Exp $ +# $Id: lond,v 1.68.2.1 2002/02/06 14:18:09 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -163,9 +163,13 @@ $children = 0; # cu sub REAPER { # takes care of dead children $SIG{CHLD} = \&REAPER; my $pid = wait; - $children --; - &logthis("Child $pid died"); - delete $children{$pid}; + if (defined($children{$pid})) { + &logthis("Child $pid died"); + $children --; + delete $children{$pid}; + } else { + &logthis("Unknown Child $pid died"); + } } sub HUNTSMAN { # signal handler for SIGINT @@ -204,13 +208,12 @@ sub checkchildren { foreach (sort keys %children) { unless (-e "$docdir/lon-status/londchld/$_.txt") { &logthis('Child '.$_.' did not respond'); - kill 9 => $_; - $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}"; - $subj="LON: $perlvar{'lonHostID'} killed lond process $_"; - system("echo 'Killed lond process $_.' |\ - mailto $emailto -s '$subj' > /dev/null"); + kill 9 => $_; + $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}"; + $subj="LON: $perlvar{'lonHostID'} killed lond process $_"; + my $result=`echo 'Killed lond process $_.' | mailto $emailto -s '$subj' > /dev/null`; $execdir=$perlvar{'lonDaemons'}; - system("cp $execdir/logs/lond.log $execdir/logs/lond.log.".$_); + $result=`/bin/cp $execdir/logs/lond.log $execdir/logs/lond.log.$_` } } } @@ -531,6 +534,7 @@ sub make_new_child { while (my $userinput=<$client>) { chomp($userinput); &status('Processing '.$hostid{$clientip}.': '.$userinput); + &logthis('Processing '.$hostid{$clientip}.': '.$userinput); my $wasenc=0; alarm(120); # ------------------------------------------------------------ See if encrypted @@ -547,7 +551,9 @@ sub make_new_child { $userinput=substr($userinput,0,$cmdlength); $wasenc=1; } - } + &logthis('Decrypted '.$hostid{$clientip}.': '.$userinput); + } + # ------------------------------------------------------------- Normal commands # ------------------------------------------------------------------------ ping if ($userinput =~ /^ping/) { @@ -1371,6 +1377,7 @@ sub make_new_child { # -------------------------------------------------------------------- complete alarm(0); &status('Listening to '.$hostid{$clientip}); + &logthis('Completed '.$userinput.' Listening to '.$hostid{$clientip}); } # --------------------------------------------- client unknown or fishy, refuse } else {