--- loncom/lond 2000/12/05 18:02:14 1.24
+++ loncom/lond 2000/12/05 19:03:13 1.25
@@ -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
@@ -28,9 +30,12 @@ use Authen::Krb4;
# grabs exception and records it to log before exiting
sub catchexception {
my ($signal)=@_;
+ $SIG{'QUIT'}='DEFAULT';
+ $SIG{__DIE__}='DEFAULT';
&logthis("CRITICAL: "
."ABNORMAL EXIT. Child $$ for server $wasserver died through "
."$signal with this parameter->[$@]");
+ if ($client) { print $client "error: $@\n"; }
die($@);
}
@@ -38,11 +43,15 @@ sub catchexception {
# 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]");
+ if ($client) { print $client "error: $message\n"; }
die($message);
}
@@ -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;