version 1.8, 2000/12/05 03:23:59
|
version 1.10, 2000/12/05 19:03:55
|
Line 12
|
Line 12
|
|
|
# 6/4/99,6/5,6/7,6/8,6/9,6/10,6/11,6/12,7/14,7/19, |
# 6/4/99,6/5,6/7,6/8,6/9,6/10,6/11,6/12,7/14,7/19, |
# 10/8,10/9,10/15,11/18,12/22, |
# 10/8,10/9,10/15,11/18,12/22, |
# 2/8,7/25 Gerd Kortemeyer |
# 2/8,7/25 Gerd Kortemeyer |
|
# 12/05 Scott Harrison |
|
# 12/05 Gerd Kortemeyer |
|
# |
# based on nonforker from Perl Cookbook |
# based on nonforker from Perl Cookbook |
# - server who multiplexes without forking |
# - server who multiplexes without forking |
|
|
Line 25 use Fcntl;
|
Line 28 use Fcntl;
|
use Tie::RefHash; |
use Tie::RefHash; |
use Crypt::IDEA; |
use Crypt::IDEA; |
|
|
|
# grabs exception and records it to log before exiting |
|
sub catchexception { |
|
my ($signal)=@_; |
|
$SIG{'QUIT'}='DEFAULT'; |
|
$SIG{__DIE__}='DEFAULT'; |
|
&logthis("<font color=red>CRITICAL: " |
|
."ABNORMAL EXIT. Child $$ for server $wasserver died through " |
|
."$signal with this parameter->[$@]</font>"); |
|
die($@); |
|
} |
|
|
|
# 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("<font color=red>CRITICAL: " |
|
."ABNORMAL EXIT. Child $$ for server $wasserver died through " |
|
."\_\_DIE\_\_ with this parameter->[$message]</font>"); |
|
die($message); |
|
} |
|
|
$childmaxattempts=10; |
$childmaxattempts=10; |
|
|
# -------------------------------- Set signal handlers to record abnormal exits |
# -------------------------------- Set signal handlers to record abnormal exits |
Line 507 sub nonblock {
|
Line 535 sub nonblock {
|
or catchdie "Can't make socket nonblocking: $!\n"; |
or catchdie "Can't make socket nonblocking: $!\n"; |
} |
} |
|
|
# grabs exception and records it to log before exiting |
|
sub catchexception { |
|
my ($signal)=@_; |
|
&logthis("<font color=red>CRITICAL: " |
|
."ABNORMAL EXIT. Child $$ for server $wasserver died through " |
|
."$signal with this parameter->[$@]</font>"); |
|
die($@); |
|
} |
|
|
|
# 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)=@_; |
|
&logthis("<font color=red>CRITICAL: " |
|
."ABNORMAL EXIT. Child $$ for server $wasserver died through " |
|
."\_\_DIE\_\_ with this parameter->[$message]</font>"); |
|
die($message); |
|
} |
|
|
|