--- loncom/lond 2001/11/29 18:56:31 1.60 +++ loncom/lond 2001/12/22 21:46:02 1.62 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.60 2001/11/29 18:56:31 www Exp $ +# $Id: lond,v 1.62 2001/12/22 21:46:02 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -35,6 +35,7 @@ # 06/29,06/30,07/14,07/15,07/17,07/20,07/25,09/18 Gerd Kortemeyer # 12/05 Scott Harrison # 12/05,12/13,12/29 Gerd Kortemeyer +# YEAR=2001 # Jan 01 Scott Harrison # 02/12 Gerd Kortemeyer # 03/15 Scott Harrison @@ -43,6 +44,8 @@ # 05/11,05/28,08/30 Gerd Kortemeyer # 9/30,10/22,11/13,11/15,11/16 Scott Harrison # 11/26,11/27 Gerd Kortemeyer +# 12/20 Scott Harrison +# 12/22 Gerd Kortemeyer # ### @@ -184,13 +187,13 @@ sub checkchildren { &initnewstatus(); &logstatus(); &logthis('Going to check on the children'); - map { + foreach (sort keys %children) { sleep 1; unless (kill 'USR1' => $_) { &logthis ('Child '.$_.' is dead'); &logstatus($$.' is dead'); } - } sort keys %children; + } } # --------------------------------------------------------------------- Logging @@ -1087,15 +1090,22 @@ sub make_new_child { } # ------------------------------------------------------------------------ dump } elsif ($userinput =~ /^dump/) { - my ($cmd,$udom,$uname,$namespace) + my ($cmd,$udom,$uname,$namespace,$regexp) =split(/:/,$userinput); $namespace=~s/\//\_/g; $namespace=~s/\W//g; + if (defined($regexp)) { + $regexp=&unescape($regexp); + } else { + $regexp='.'; + } my $proname=propath($udom,$uname); my $qresult=''; if (tie(%hash,'GDBM_File',"$proname/$namespace.db",&GDBM_READER,0640)) { foreach $key (keys %hash) { - $qresult.="$key=$hash{$key}&"; + if (eval('$key=~/$regexp/')) { + $qresult.="$key=$hash{$key}&"; + } } if (untie(%hash)) { $qresult=~s/\&$//; @@ -1351,6 +1361,48 @@ sub make_new_child { } } +# ----------------------------------- POD (plain old documentation, CPAN style) + +=head1 NAME + +lond - "LON Daemon" Server (port "LOND" 5663) + +=head1 SYNOPSIS + +Should only be run as user=www. Invoked by loncron. + +=head1 DESCRIPTION + +Preforker - server who forks first. Runs as a daemon. HUPs. +Uses IDEA encryption + +=head1 README + +Not yet written. + +=head1 PREREQUISITES + +IO::Socket +IO::File +Apache::File +Symbol +POSIX +Crypt::IDEA +LWP::UserAgent() +GDBM_File +Authen::Krb4 + +=head1 COREQUISITES + +=head1 OSNAMES + +linux + +=head1 SCRIPT CATEGORIES + +Server/Process + +=cut