version 1.370, 2007/04/04 00:03:40
|
version 1.380, 2007/08/23 17:39:51
|
Line 69 my $clientip; # IP address of client.
|
Line 69 my $clientip; # IP address of client.
|
my $clientname; # LonCAPA name of client. |
my $clientname; # LonCAPA name of client. |
|
|
my $server; |
my $server; |
my $thisserver; # DNS of us. |
|
|
|
my $keymode; |
my $keymode; |
|
|
Line 136 my @adderrors = ("ok",
|
Line 135 my @adderrors = ("ok",
|
"lcuseradd Unable to make www member of users's group", |
"lcuseradd Unable to make www member of users's group", |
"lcuseradd Unable to su to root", |
"lcuseradd Unable to su to root", |
"lcuseradd Unable to set password", |
"lcuseradd Unable to set password", |
"lcuseradd Usrname has invalid characters", |
"lcuseradd Username has invalid characters", |
"lcuseradd Password has an invalid character", |
"lcuseradd Password has an invalid character", |
"lcuseradd User already exists", |
"lcuseradd User already exists", |
"lcuseradd Could not add user.", |
"lcuseradd Could not add user.", |
Line 172 sub ResetStatistics {
|
Line 171 sub ResetStatistics {
|
# $Socket - Socket open on client. |
# $Socket - Socket open on client. |
# $initcmd - The full text of the init command. |
# $initcmd - The full text of the init command. |
# |
# |
# Implicit inputs: |
|
# $thisserver - Our DNS name. |
|
# |
|
# Returns: |
# Returns: |
# IDEA session key on success. |
# IDEA session key on success. |
# undef on failure. |
# undef on failure. |
# |
# |
sub LocalConnection { |
sub LocalConnection { |
my ($Socket, $initcmd) = @_; |
my ($Socket, $initcmd) = @_; |
Debug("Attempting local connection: $initcmd client: $clientip me: $thisserver"); |
Debug("Attempting local connection: $initcmd client: $clientip"); |
if($clientip ne "127.0.0.1") { |
if($clientip ne "127.0.0.1") { |
&logthis('<font color="red"> LocalConnection rejecting non local: ' |
&logthis('<font color="red"> LocalConnection rejecting non local: ' |
."$clientip ne $thisserver </font>"); |
."$clientip ne 127.0.0.1 </font>"); |
close $Socket; |
close $Socket; |
return undef; |
return undef; |
} else { |
} else { |
Line 2191 sub subscribe_handler {
|
Line 2187 sub subscribe_handler {
|
®ister_handler("sub", \&subscribe_handler, 0, 1, 0); |
®ister_handler("sub", \&subscribe_handler, 0, 1, 0); |
|
|
# |
# |
# Determine the version of a resource (?) Or is it return |
# Determine the latest version of a resource (it looks for the highest |
# the top version of the resource? Not yet clear from the |
# past version and then returns that +1) |
# code in currentversion. |
|
# |
# |
# Parameters: |
# Parameters: |
# $cmd - The command that got us here. |
# $cmd - The command that got us here. |
# $tail - Tail of the command (remaining parameters). |
# $tail - Tail of the command (remaining parameters). |
|
# (Should consist of an absolute path to a file) |
# $client - File descriptor connected to client. |
# $client - File descriptor connected to client. |
# Returns |
# Returns |
# 0 - Requested to exit, caller should shut down. |
# 0 - Requested to exit, caller should shut down. |
Line 4907 sub catchexception {
|
Line 4903 sub catchexception {
|
$SIG{__DIE__}='DEFAULT'; |
$SIG{__DIE__}='DEFAULT'; |
&status("Catching exception"); |
&status("Catching exception"); |
&logthis("<font color='red'>CRITICAL: " |
&logthis("<font color='red'>CRITICAL: " |
."ABNORMAL EXIT. Child $$ for server $thisserver died through " |
."ABNORMAL EXIT. Child $$ for server ".$perlvar{'lonHostID'}." died through " |
."a crash with this error msg->[$error]</font>"); |
."a crash with this error msg->[$error]</font>"); |
&logthis('Famous last words: '.$status.' - '.$lastlog); |
&logthis('Famous last words: '.$status.' - '.$lastlog); |
if ($client) { print $client "error: $error\n"; } |
if ($client) { print $client "error: $error\n"; } |
Line 5048 sub UpdateHosts {
|
Line 5044 sub UpdateHosts {
|
# either dropped or changed hosts. Note that the re-read of the table |
# either dropped or changed hosts. Note that the re-read of the table |
# will take care of new and changed hosts as connections come into being. |
# will take care of new and changed hosts as connections come into being. |
|
|
#FIXME need a way to tell lonnet that it needs to reset host |
&Apache::lonnet::reset_hosts_info(); |
#cached host info |
|
|
|
foreach my $child (keys(%children)) { |
foreach my $child (keys(%children)) { |
my $childip = $children{$child}; |
my $childip = $children{$child}; |
if (defined(&Apache::lonnet::get_hosts_from_ip($childip))) { |
if ($childip ne '127.0.0.1' |
|
&& !defined(&Apache::lonnet::get_hosts_from_ip($childip))) { |
logthis('<font color="blue"> UpdateHosts killing child ' |
logthis('<font color="blue"> UpdateHosts killing child ' |
." $child for ip $childip </font>"); |
." $child for ip $childip </font>"); |
kill('INT', $child); |
kill('INT', $child); |
Line 5371 sub make_new_child {
|
Line 5367 sub make_new_child {
|
# ----------------------------------------------------------------------------- |
# ----------------------------------------------------------------------------- |
# see if we know client and 'check' for spoof IP by ineffective challenge |
# see if we know client and 'check' for spoof IP by ineffective challenge |
|
|
ReadManagerTable; # May also be a manager!! |
|
|
|
my $outsideip=$clientip; |
my $outsideip=$clientip; |
if ($clientip eq '127.0.0.1') { |
if ($clientip eq '127.0.0.1') { |
$outsideip=&Apache::lonnet::get_host_ip($perlvar{'lonHostID'}); |
$outsideip=&Apache::lonnet::get_host_ip($perlvar{'lonHostID'}); |
Line 5492 sub make_new_child {
|
Line 5486 sub make_new_child {
|
# ---------------- New known client connecting, could mean machine online again |
# ---------------- New known client connecting, could mean machine online again |
if (&Apache::lonnet::get_host_ip($currenthostid) ne $clientip |
if (&Apache::lonnet::get_host_ip($currenthostid) ne $clientip |
&& $clientip ne '127.0.0.1') { |
&& $clientip ne '127.0.0.1') { |
&Apache::lonnet::reconlonc(); |
&Apache::lonnet::reconlonc($clientname); |
} |
} |
&logthis("<font color='green'>Established connection: $clientname</font>"); |
&logthis("<font color='green'>Established connection: $clientname</font>"); |
&status('Will listen to '.$clientname); |
&status('Will listen to '.$clientname); |
Line 5776 sub validate_user {
|
Line 5770 sub validate_user {
|
$password, |
$password, |
$credentials); |
$credentials); |
$validated = ($krbreturn == 1); |
$validated = ($krbreturn == 1); |
|
if (!$validated) { |
|
&logthis('krb5: '.$user.', '.$contentpwd.', '. |
|
&Authen::Krb5::error()); |
|
} |
} else { |
} else { |
$validated = 0; |
$validated = 0; |
} |
} |
Line 6021 sub subscribe {
|
Line 6019 sub subscribe {
|
# the metadata |
# the metadata |
unless ($fname=~/\.meta$/) { &unsub("$fname.meta",$clientip); } |
unless ($fname=~/\.meta$/) { &unsub("$fname.meta",$clientip); } |
$fname=~s/\/home\/httpd\/html\/res/raw/; |
$fname=~s/\/home\/httpd\/html\/res/raw/; |
$fname="http://$thisserver/".$fname; |
$fname="http://".&Apache::lonnet::hostname($perlvar{'lonHostID'})."/".$fname; |
$result="$fname\n"; |
$result="$fname\n"; |
} |
} |
} else { |
} else { |