version 1.12, 2000/12/06 20:38:21
|
version 1.15, 2001/03/15 20:25:20
|
Line 15
|
Line 15
|
# 2/8,7/25 Gerd Kortemeyer |
# 2/8,7/25 Gerd Kortemeyer |
# 12/05 Scott Harrison |
# 12/05 Scott Harrison |
# 12/05 Gerd Kortemeyer |
# 12/05 Gerd Kortemeyer |
|
# 01/10/01 Scott Harrison |
|
# 03/14/01,03/15 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 59 while ($configline=<CONFIG>) {
|
Line 61 while ($configline=<CONFIG>) {
|
} |
} |
close(CONFIG); |
close(CONFIG); |
|
|
|
# ----------------------------- Make sure this process is running from user=www |
|
my $wwwid=getpwnam('www'); |
|
if ($wwwid!=$<) { |
|
$emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}"; |
|
$subj="LON: $perlvar{'lonHostID'} User ID mismatch"; |
|
system("echo 'User ID mismatch. lonc must be run as user www.' |\ |
|
mailto $emailto -s '$subj' > /dev/null"); |
|
exit 1; |
|
} |
|
|
# --------------------------------------------- Check if other instance running |
# --------------------------------------------- Check if other instance running |
|
|
my $pidfile="$perlvar{'lonDaemons'}/logs/lonc.pid"; |
my $pidfile="$perlvar{'lonDaemons'}/logs/lonc.pid"; |
Line 431 while (1) {
|
Line 443 while (1) {
|
$rv = $client->send($outbuffer{$client}, 0); |
$rv = $client->send($outbuffer{$client}, 0); |
unless (defined $rv) { |
unless (defined $rv) { |
# Whine, but move on. |
# Whine, but move on. |
warn "I was told I could write, but I can't.\n"; |
&logthis("I was told I could write, but I can't.\n"); |
next; |
next; |
} |
} |
|
$errno=$!; |
if (($rv == length $outbuffer{$client}) || |
if (($rv == length $outbuffer{$client}) || |
($! == POSIX::EWOULDBLOCK)) { |
($errno == POSIX::EWOULDBLOCK) || ($errno == 0)) { |
substr($outbuffer{$client}, 0, $rv) = ''; |
substr($outbuffer{$client}, 0, $rv) = ''; |
delete $outbuffer{$client} unless length $outbuffer{$client}; |
delete $outbuffer{$client} unless length $outbuffer{$client}; |
} else { |
} else { |
# Couldn't write all the data, and it wasn't because |
# Couldn't write all the data, and it wasn't because |
# it would have blocked. Shutdown and move on. |
# it would have blocked. Shutdown and move on. |
|
|
|
&logthis("Dropping data with ".$errno.": ". |
|
length($outbuffer{$client}).", $rv"); |
|
|
delete $inbuffer{$client}; |
delete $inbuffer{$client}; |
delete $outbuffer{$client}; |
delete $outbuffer{$client}; |
delete $ready{$client}; |
delete $ready{$client}; |