--- loncom/production_dns_sanity.pl 2008/05/20 15:43:12 1.1 +++ loncom/production_dns_sanity.pl 2010/08/18 22:57:12 1.3 @@ -12,6 +12,9 @@ while (my $line=) { chomp($line); unless ($line=~/\S/) { next; } my ($domain,$name,$auth,$authparm,$lang,$city,$coord1,$coord2,$lib)=split(/\:/,$line); + if ($domserv{$domain}) { + print "Domain $domain defined more than once in domain.tab\n"; + } $domserv{$domain}=$lib; $domname{$domain}=$name; } @@ -21,7 +24,13 @@ while (my $line=) { if ($line=~/^\s*\#/) { next; } chomp($line); unless ($line=~/\S/) { next; } - my ($server,$domain,$function,$ip)=split(/\:/,$line); + my ($server,$domain,$function,$ip,$protocol,$interdom)=split(/\:/,$line); + unless (($protocol eq 'http') || ($protocol eq 'https')) { + print "Invalid protocol $protocol for $server\n"; + } + unless ($interdom=~/\./) { + print "Invalid internet domain $interdom for $server\n"; + } if ($hostdom{$server}) { print "$server defined more than once in hosts.tab\n"; } @@ -32,6 +41,7 @@ close(IN); # Every mentioned library server should be in hosts.tab +my $doms=0; foreach my $dom (keys %domserv) { unless ($hostdom{$domserv{$dom}} eq $dom) { print "Did not find $domserv{$dom} in hosts.tab\n"; @@ -39,4 +49,20 @@ foreach my $dom (keys %domserv) { unless ($hostfunc{$domserv{$dom}} eq 'library') { print "$domserv{$dom} is not a library server ($hostfunc{$domserv{$dom}})\n"; } + $doms++; } + +# Every server should have a valid domain + +my $servs=0; +foreach my $serv (keys %hostdom) { + unless ($domserv{$hostdom{$serv}}) { + print "Server $serv has invalid domain in hosts.tab\n"; + } + unless (($hostfunc{$serv} eq 'library') || ($hostfunc{$serv} eq 'access')) { + print "Server $serv has invalid function $hostfunc{$serv} in hosts.tab\n"; + } + $servs++; +} +print "\nValidated $doms domains and $servs servers\n"; +