--- loncom/lond 2000/12/05 16:51:41 1.23
+++ loncom/lond 2000/12/05 19:45:36 1.27
@@ -8,6 +8,8 @@
# 03/07,05/31 Gerd Kortemeyer
# 06/26 Scott Harrison
# 06/29,06/30,07/14,07/15,07/17,07/20,07/25,09/18 Gerd Kortemeyer
+# 12/05 Scott Harrison
+# 12/05 Gerd Kortemeyer
#
# based on "Perl Cookbook" ISBN 1-56592-243-3
# preforker - server who forks first
@@ -27,22 +29,29 @@ use Authen::Krb4;
# grabs exception and records it to log before exiting
sub catchexception {
- my ($signal)=@_;
+ my ($error)=@_;
+ $SIG{'QUIT'}='DEFAULT';
+ $SIG{__DIE__}='DEFAULT';
&logthis("CRITICAL: "
."ABNORMAL EXIT. Child $$ for server $wasserver died through "
- ."$signal with this parameter->[$@]");
- die($@);
+ ."a crash with this error msg->[$error]");
+ if ($client) { print $client "error: $error\n"; }
+ die($error);
}
# grabs exception and records it to log before exiting
# NOTE: we must NOT use the regular (non-overrided) die function in
# the code because a handler CANNOT be attached to it
# (despite what some of the documentation says about SIG{__DIE__}.
+
sub catchdie {
my ($message)=@_;
+ $SIG{'QUIT'}='DEFAULT';
+ $SIG{__DIE__}='DEFAULT';
&logthis("CRITICAL: "
."ABNORMAL EXIT. Child $$ for server $wasserver died through "
- ."\_\_DIE\_\_ with this parameter->[$message]");
+ ."\_\_DIE\_\_ with this error msg->[$message]");
+ if ($client) { print $client "error: $message\n"; }
die($message);
}
@@ -550,7 +559,7 @@ sub make_new_child {
$response=$ua->request($request,$transname);
}
if ($response->is_error()) {
- unline($transname);
+ unlink($transname);
my $message=$response->status_line;
&logthis(
"LWP GET: $message for $fname ($remoteurl)");
@@ -597,8 +606,11 @@ sub make_new_child {
} else {
$now=time;
{
- my $sh=IO::File->new(">$fname.$hostid{$clientip}");
- print $sh "$clientip:$now\n";
+ my $sh;
+ if ($sh=
+ IO::File->new(">$fname.$hostid{$clientip}")) {
+ print $sh "$clientip:$now\n";
+ }
}
$fname=~s/\/home\/httpd\/html\/res/raw/;
$fname="http://$thisserver/".$fname;