version 1.890.2.1, 2007/06/25 23:30:27
|
version 1.895, 2007/06/25 23:08:55
|
Line 214 sub reply {
|
Line 214 sub reply {
|
# ----------------------------------------------------------- Send USR1 to lonc |
# ----------------------------------------------------------- Send USR1 to lonc |
|
|
sub reconlonc { |
sub reconlonc { |
|
my ($lonid) = @_; |
|
my $hostname = &hostname($lonid); |
|
if ($lonid) { |
|
my $peerfile="$perlvar{'lonSockDir'}/$hostname"; |
|
if ($hostname && -e $peerfile) { |
|
&logthis("Trying to reconnect lonc for $lonid ($hostname)"); |
|
my $client=IO::Socket::UNIX->new(Peer => $peerfile, |
|
Type => SOCK_STREAM, |
|
Timeout => 10); |
|
if ($client) { |
|
print $client ("reset_retries\n"); |
|
my $answer=<$client>; |
|
#reset just this one. |
|
} |
|
} |
|
return; |
|
} |
|
|
&logthis("Trying to reconnect lonc"); |
&logthis("Trying to reconnect lonc"); |
my $loncfile="$perlvar{'lonDaemons'}/logs/lonc.pid"; |
my $loncfile="$perlvar{'lonDaemons'}/logs/lonc.pid"; |
if (open(my $fh,"<$loncfile")) { |
if (open(my $fh,"<$loncfile")) { |
Line 1378 sub ssi {
|
Line 1396 sub ssi {
|
my $request; |
my $request; |
|
|
$form{'no_update_last_known'}=1; |
$form{'no_update_last_known'}=1; |
|
&Apache::lonenc::check_encrypt(\$fn); |
if (%form) { |
if (%form) { |
$request=new HTTP::Request('POST',&absolute_url().$fn); |
$request=new HTTP::Request('POST',&absolute_url().$fn); |
$request->content(join('&',map { &escape($_).'='.&escape($form{$_}) } keys %form)); |
$request->content(join('&',map { &escape($_).'='.&escape($form{$_}) } keys %form)); |
Line 3786 sub customaccess {
|
Line 3804 sub customaccess {
|
$ucrs = &LONCAPA::clean_username($ucrs); |
$ucrs = &LONCAPA::clean_username($ucrs); |
my $access=0; |
my $access=0; |
foreach my $right (split(/\s*\,\s*/,&metadata($uri,'rule_rights'))) { |
foreach my $right (split(/\s*\,\s*/,&metadata($uri,'rule_rights'))) { |
my ($effect,$realm,$role)=split(/\:/,$right); |
my ($effect,$realm,$role,$type)=split(/\:/,$right); |
if ($role) { |
if ($type eq 'user') { |
if ($role ne $urole) { next; } |
foreach my $scope (split(/\s*\,\s*/,$realm)) { |
} |
my ($tdom,$tcrs)=split(/\_/,$scope); |
foreach my $scope (split(/\s*\,\s*/,$realm)) { |
if ($tdom) { |
my ($tdom,$tcrs,$tsec)=split(/\_/,$scope); |
if ($tdom ne $env{'user.domain'}) { next; } |
if ($tdom) { |
} |
if ($tdom ne $udom) { next; } |
if ($tcrs) { |
} |
if ($tcrs ne $env{'user.name'}) { next; } |
if ($tcrs) { |
} |
if ($tcrs ne $ucrs) { next; } |
$access=($effect eq 'allow'); |
} |
last; |
if ($tsec) { |
} |
if ($tsec ne $usec) { next; } |
} else { |
} |
if ($role) { |
$access=($effect eq 'allow'); |
if ($role ne $urole) { next; } |
last; |
} |
} |
foreach my $scope (split(/\s*\,\s*/,$realm)) { |
if ($realm eq '' && $role eq '') { |
my ($tdom,$tcrs,$tsec)=split(/\_/,$scope); |
$access=($effect eq 'allow'); |
if ($tdom) { |
|
if ($tdom ne $udom) { next; } |
|
} |
|
if ($tcrs) { |
|
if ($tcrs ne $ucrs) { next; } |
|
} |
|
if ($tsec) { |
|
if ($tsec ne $usec) { next; } |
|
} |
|
$access=($effect eq 'allow'); |
|
last; |
|
} |
|
if ($realm eq '' && $role eq '') { |
|
$access=($effect eq 'allow'); |
|
} |
} |
} |
} |
} |
return $access; |
return $access; |
Line 7977 sub get_dns {
|
Line 8009 sub get_dns {
|
|
|
sub get_iphost { |
sub get_iphost { |
my ($ignore_cache) = @_; |
my ($ignore_cache) = @_; |
|
|
if (!$ignore_cache) { |
if (!$ignore_cache) { |
if (%iphost) { |
if (%iphost) { |
return %iphost; |
return %iphost; |
Line 7990 sub get_dns {
|
Line 8023 sub get_dns {
|
return %iphost; |
return %iphost; |
} |
} |
} |
} |
|
|
|
# get yesterday's info for fallback |
|
my %old_name_to_ip; |
|
my ($ip_info,$cached)= |
|
&Apache::lonnet::is_cached_new('iphost','iphost'); |
|
if ($cached) { |
|
%old_name_to_ip = %{$ip_info->[1]}; |
|
} |
|
|
my %name_to_host = &all_names(); |
my %name_to_host = &all_names(); |
foreach my $name (keys(%name_to_host)) { |
foreach my $name (keys(%name_to_host)) { |
my $ip; |
my $ip; |
if (!exists($name_to_ip{$name})) { |
if (!exists($name_to_ip{$name})) { |
$ip = gethostbyname($name); |
$ip = gethostbyname($name); |
if (!$ip || length($ip) ne 4) { |
if (!$ip || length($ip) ne 4) { |
&logthis("Skipping name $name no IP found"); |
if (defined($old_name_to_ip{$name})) { |
next; |
$ip = $old_name_to_ip{$name}; |
|
&logthis("Can't find $name defaulting to old $ip"); |
|
} else { |
|
&logthis("Name $name no IP found"); |
|
next; |
|
} |
|
} else { |
|
$ip=inet_ntoa($ip); |
} |
} |
$ip=inet_ntoa($ip); |
|
$name_to_ip{$name} = $ip; |
$name_to_ip{$name} = $ip; |
} else { |
} else { |
$ip = $name_to_ip{$name}; |
$ip = $name_to_ip{$name}; |
Line 8011 sub get_dns {
|
Line 8059 sub get_dns {
|
} |
} |
&Apache::lonnet::do_cache_new('iphost','iphost', |
&Apache::lonnet::do_cache_new('iphost','iphost', |
[\%iphost,\%name_to_ip,\%lonid_to_ip], |
[\%iphost,\%name_to_ip,\%lonid_to_ip], |
24*60*60); |
48*60*60); |
|
|
return %iphost; |
return %iphost; |
} |
} |