--- loncom/lonnet/perl/lonnet.pm 2007/06/11 19:31:41 1.887 +++ loncom/lonnet/perl/lonnet.pm 2007/06/13 01:43:54 1.888 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.887 2007/06/11 19:31:41 albertel Exp $ +# $Id: lonnet.pm,v 1.888 2007/06/13 01:43:54 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -7600,14 +7600,8 @@ sub machine_ids { my ($hostname) = @_; $hostname ||= &hostname($perlvar{'lonHostID'}); my @ids; - my %hostname = &all_hostnames(); - while( my($id, $name) = each(%hostname)) { -# &logthis("-$id-$name-$hostname-"); - if ($hostname eq $name) { - push(@ids,$id); - } - } - return @ids; + my %name_to_host = &all_names(); + return @{ $name_to_host{$hostname} }; } sub additional_machine_domains { @@ -7720,6 +7714,7 @@ sub correct_line_ends { sub goodbye { &logthis("Starting Shut down"); + &logthis("test"); #not converted to using infrastruture and probably shouldn't be &logthis(sprintf("%-20s is %s",'%badServerCache',length(&nfreeze(\%badServerCache)))); #converted @@ -7835,6 +7830,7 @@ sub get_dns { my %hostdom; my %libserv; my $loaded; + my %name_to_host; sub parse_hosts_tab { my ($file) = @_; @@ -7846,6 +7842,7 @@ sub get_dns { $name=~s/\s//g; if ($id && $domain && $role && $name) { $hostname{$id}=$name; + push(@{$name_to_host{$name}}, $id); $hostdom{$id}=$domain; if ($role eq 'library') { $libserv{$id}=$name; } } @@ -7884,6 +7881,12 @@ sub get_dns { return %hostname; } + sub all_names { + &load_hosts_tab() if (!$loaded); + + return %name_to_host; + } + sub is_library { &load_hosts_tab() if (!$loaded); @@ -8002,14 +8005,13 @@ sub get_dns { return %iphost; } } - my %hostname = &all_hostnames(); - foreach my $id (keys(%hostname)) { - my $name=&hostname($id); + my %name_to_host = &all_names(); + foreach my $name (keys(%name_to_host)) { my $ip; if (!exists($name_to_ip{$name})) { $ip = gethostbyname($name); if (!$ip || length($ip) ne 4) { - &logthis("Skipping host $id name $name no IP found"); + &logthis("Skipping name $name no IP found"); next; } $ip=inet_ntoa($ip); @@ -8017,8 +8019,10 @@ sub get_dns { } else { $ip = $name_to_ip{$name}; } - $lonid_to_ip{$id} = $ip; - push(@{$iphost{$ip}},$id); + foreach my $id (@{ $name_to_host{$name} }) { + $lonid_to_ip{$id} = $ip; + } + push(@{$iphost{$ip}},@{$name_to_host{$name}}); } &Apache::lonnet::do_cache_new('iphost','iphost', [\%iphost,\%name_to_ip,\%lonid_to_ip],