version 1.860, 2007/04/03 18:47:29
|
version 1.864, 2007/04/04 00:48:23
|
Line 671 sub homeserver {
|
Line 671 sub homeserver {
|
return 'no_host'; |
return 'no_host'; |
} |
} |
|
|
# ---------------------- Get domain configuration for a domain |
|
sub get_domainconf { |
|
my ($udom) = @_; |
|
my $cachetime=1800; |
|
my ($result,$cached)=&is_cached_new('domainconfig',$udom); |
|
if (defined($cached)) { return %{$result}; } |
|
|
|
if ($udom eq '') { |
|
$udom = &Apache::loncommon::determinedomain(); |
|
} |
|
my %domconfig = &get_dom('configuration',['login','rolecolors'],$udom); |
|
my %designhash; |
|
if (keys(%domconfig) > 0) { |
|
if (ref($domconfig{'login'}) eq 'HASH') { |
|
foreach my $key (keys(%{$domconfig{'login'}})) { |
|
$designhash{$udom.'.login.'.$key}=$domconfig{'login'}{$key}; |
|
} |
|
} |
|
if (ref($domconfig{'rolecolors'}) eq 'HASH') { |
|
foreach my $role (keys(%{$domconfig{'rolecolors'}})) { |
|
if (ref($domconfig{'rolecolors'}{$role}) eq 'HASH') { |
|
foreach my $item (keys(%{$domconfig{'rolecolors'}{$role}})) { |
|
$designhash{$udom.'.'.$role.'.'.$item}=$domconfig{'rolecolors'}{$role}{$item}; |
|
} |
|
} |
|
} |
|
} |
|
} else { |
|
my $designdir=$perlvar{'lonTabDir'}.'/lonDomColors'; |
|
my $designfile = $designdir.'/'.$udom.'.tab'; |
|
if (-e $designfile) { |
|
if ( open (my $fh,"<$designfile") ) { |
|
while (my $line = <$fh>) { |
|
next if ($line =~ /^\#/); |
|
chomp($line); |
|
my ($key,$val)=(split(/\=/,$line)); |
|
if ($val) { $designhash{$udom.'.'.$key}=$val; } |
|
} |
|
close($fh); |
|
} |
|
} |
|
if (-e '/home/httpd/html/adm/lonDomLogos/'.$udom.'.gif') { |
|
$designhash{$udom.'.login.domlogo'} = |
|
&lonhttpdurl("/adm/lonDomLogos/$udom.gif"); |
|
} |
|
} |
|
&do_cache_new('domainconfig',$udom,\%designhash,$cachetime); |
|
return %designhash; |
|
} |
|
|
|
sub devalidate_domconfig_cache { |
|
my ($udom)=@_; |
|
&devalidate_cache_new('domainconfig',$udom); |
|
} |
|
|
|
# ------------------------------------- Find the usernames behind a list of IDs |
# ------------------------------------- Find the usernames behind a list of IDs |
|
|
sub idget { |
sub idget { |
Line 7704 sub goodbye {
|
Line 7649 sub goodbye {
|
&logthis("Shutting down"); |
&logthis("Shutting down"); |
} |
} |
|
|
BEGIN { |
|
|
|
# ----------------------------------- Read loncapa.conf and loncapa_apache.conf |
|
unless ($readit) { |
|
{ |
|
my $configvars = LONCAPA::Configuration::read_conf('loncapa.conf'); |
|
%perlvar = (%perlvar,%{$configvars}); |
|
} |
|
|
|
sub get_dns { |
sub get_dns { |
my ($url,$func) = @_; |
my ($url,$func) = @_; |
open(my $config,"<$perlvar{'lonTabDir'}/hosts.tab"); |
open(my $config,"<$perlvar{'lonTabDir'}/hosts.tab"); |
Line 7747 sub get_dns {
|
Line 7683 sub get_dns {
|
$this_domain{$field} = shift(@elements); |
$this_domain{$field} = shift(@elements); |
} |
} |
$domain{$name} = \%this_domain; |
$domain{$name} = \%this_domain; |
&logthis("Domain.tab: $name ".$domain{$name}{'description'} ); |
|
} |
} |
} |
} |
|
|
|
sub reset_domain_info { |
|
undef($loaded); |
|
undef(%domain); |
|
} |
|
|
sub load_domain_tab { |
sub load_domain_tab { |
&get_dns('/adm/dns/domain',\&parse_domain_tab); |
&get_dns('/adm/dns/domain',\&parse_domain_tab); |
my $fh; |
my $fh; |
Line 7796 sub get_dns {
|
Line 7736 sub get_dns {
|
$hostdom{$id}=$domain; |
$hostdom{$id}=$domain; |
if ($role eq 'library') { $libserv{$id}=$name; } |
if ($role eq 'library') { $libserv{$id}=$name; } |
} |
} |
&logthis("Hosts.tab: $name ".$id ); |
|
} |
} |
} |
} |
|
|
|
sub reset_hosts_info { |
|
&reset_domain_info(); |
|
&reset_hosts_ip_info(); |
|
undef(%hostname); |
|
undef(%hostdom); |
|
undef(%libserv); |
|
undef($loaded); |
|
} |
|
|
sub load_hosts_tab { |
sub load_hosts_tab { |
&get_dns('/adm/dns/hosts',\&parse_hosts_tab); |
&get_dns('/adm/dns/hosts',\&parse_hosts_tab); |
Line 7809 sub get_dns {
|
Line 7757 sub get_dns {
|
$loaded=1; |
$loaded=1; |
} |
} |
|
|
# FIXME: dev server don't want this, production servers _do_ want this |
|
#&get_iphost(); |
|
|
|
sub hostname { |
sub hostname { |
&load_hosts_tab() if (!$loaded); |
&load_hosts_tab() if (!$loaded); |
|
|
Line 7888 sub get_dns {
|
Line 7833 sub get_dns {
|
} |
} |
return; |
return; |
} |
} |
|
|
|
sub reset_hosts_ip_info { |
|
undef(%iphost); |
|
undef(%name_to_ip); |
|
undef(%lonid_to_ip); |
|
} |
|
|
sub get_host_ip { |
sub get_host_ip { |
my ($lonid) = @_; |
my ($lonid) = @_; |
Line 7907 sub get_dns {
|
Line 7858 sub get_dns {
|
if (%iphost) { return %iphost; } |
if (%iphost) { return %iphost; } |
my %hostname = &all_hostnames(); |
my %hostname = &all_hostnames(); |
foreach my $id (keys(%hostname)) { |
foreach my $id (keys(%hostname)) { |
my $name=$hostname{$id}; |
my $name=&hostname($id); |
my $ip; |
my $ip; |
if (!exists($name_to_ip{$name})) { |
if (!exists($name_to_ip{$name})) { |
$ip = gethostbyname($name); |
$ip = gethostbyname($name); |
Line 7927 sub get_dns {
|
Line 7878 sub get_dns {
|
} |
} |
} |
} |
|
|
|
BEGIN { |
|
|
|
# ----------------------------------- Read loncapa.conf and loncapa_apache.conf |
|
unless ($readit) { |
|
{ |
|
my $configvars = LONCAPA::Configuration::read_conf('loncapa.conf'); |
|
%perlvar = (%perlvar,%{$configvars}); |
|
} |
|
|
|
|
# ------------------------------------------------------ Read spare server file |
# ------------------------------------------------------ Read spare server file |
{ |
{ |
open(my $config,"<$perlvar{'lonTabDir'}/spare.tab"); |
open(my $config,"<$perlvar{'lonTabDir'}/spare.tab"); |