--- loncom/lond 2003/03/14 21:25:44 1.103.2.1 +++ loncom/lond 2002/12/18 20:43:29 1.104 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.103.2.1 2003/03/14 21:25:44 albertel Exp $ +# $Id: lond,v 1.104 2002/12/18 20:43:29 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -272,25 +272,17 @@ sub checkchildren { } } sleep 5; - $SIG{ALRM} = sub { die "timeout" }; - $SIG{__DIE__} = 'DEFAULT'; foreach (sort keys %children) { unless (-e "$docdir/lon-status/londchld/$_.txt") { - eval { - alarm(300); &logthis('Child '.$_.' did not respond'); 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'}; - $result=`/bin/cp $execdir/logs/lond.log $execdir/logs/lond.log.$_`; - alarm(0); - } + $result=`/bin/cp $execdir/logs/lond.log $execdir/logs/lond.log.$_` } } - $SIG{ALRM} = 'DEFAULT'; - $SIG{__DIE__} = \&cathcexception; } # --------------------------------------------------------------------- Logging @@ -729,13 +721,22 @@ sub make_new_child { } } } elsif ($howpwd eq 'krb4') { - $null=pack("C",0); - unless ($upass=~/$null/) { - $pwdcorrect=( - Authen::Krb4::get_pw_in_tkt($uname,"", - $contentpwd,'krbtgt',$contentpwd,1, - $upass) == 0); - } else { $pwdcorrect=0; } + $null=pack("C",0); + unless ($upass=~/$null/) { + my $krb4_error = &Authen::Krb4::get_pw_in_tkt + ($uname,"",$contentpwd,'krbtgt', + $contentpwd,1,$upass); + if (!$krb4_error) { + $pwdcorrect = 1; + } else { + $pwdcorrect=0; + # log error if it is not a bad password + if ($krb4_error != 62) { + &logthis('krb4:'.$uname.','.$contentpwd.','. + &Authen::Krb4::get_err_txt($Authen::Krb4::error)); + } + } + } } elsif ($howpwd eq 'krb5') { $null=pack("C",0); unless ($upass=~/$null/) {