[LON-CAPA-cvs] cvs: loncom / lond
albertel
lon-capa-cvs@mail.lon-capa.org
Thu, 01 Sep 2005 07:49:45 -0000
albertel Thu Sep 1 03:49:45 2005 EDT
Modified files:
/loncom lond
Log:
- minimize the number of hostanme lookups that need to be done
Index: loncom/lond
diff -u loncom/lond:1.295 loncom/lond:1.296
--- loncom/lond:1.295 Wed Aug 31 18:38:57 2005
+++ loncom/lond Thu Sep 1 03:49:43 2005
@@ -2,7 +2,7 @@
# The LearningOnline Network
# lond "LON Daemon" Server (port "LOND" 5663)
#
-# $Id: lond,v 1.295 2005/08/31 22:38:57 raeburn Exp $
+# $Id: lond,v 1.296 2005/09/01 07:49:43 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -59,7 +59,7 @@
my $status='';
my $lastlog='';
-my $VERSION='$Revision: 1.295 $'; #' stupid emacs
+my $VERSION='$Revision: 1.296 $'; #' stupid emacs
my $remoteVERSION;
my $currenthostid="default";
my $currentdomainid;
@@ -4405,16 +4405,23 @@
open (CONFIG,"$perlvar{'lonTabDir'}/hosts.tab") || die "Can't read host file";
my $myloncapaname = $perlvar{'lonHostID'};
Debug("My loncapa name is : $myloncapaname");
+ my %name_to_ip;
while (my $configline=<CONFIG>) {
if ($configline !~ /^\s*\#/ && $configline !~ /^\s*$/ ) {
my ($id,$domain,$role,$name)=split(/:/,$configline);
$name=~s/\s//g;
- my $ip = gethostbyname($name);
- if (length($ip) ne 4) {
- &logthis("Skipping host $id name $name no IP $ip found\n");
- next;
+ 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\n");
+ next;
+ }
+ $ip=inet_ntoa($ip);
+ $name_to_ip{$name} = $ip;
+ } else {
+ $ip = $name_to_ip{$name};
}
- $ip=inet_ntoa($ip);
$hostid{$ip}=$id; # LonCAPA name of host by IP.
$hostdom{$id}=$domain; # LonCAPA domain name of host.
$hostip{$id}=$ip; # IP address of host.