--- doc/loncapafiles/sanitycheck.piml 2002/05/16 01:46:29 1.2
+++ doc/loncapafiles/sanitycheck.piml 2010/05/04 00:12:28 1.31
@@ -1,7 +1,8 @@
+
-
-
+
+
+
+
/etc/httpd/conf/loncapa.conf
+/etc/apache2/loncapa.conf
open IN, "<";
my $hbug=-1;
@@ -40,14 +121,19 @@ while (<IN>) {
if (/PerlSetVar\s+lonHostID\s+(\S+)/) {
my $v=$1;
$hbug=0;
- $hbug=1 if $v=~/\W/;
- $hbug=1 if $v=~/\_/;
+ $hbug=1 if $v=~/[^\w.\-]/;
+ $hbug=1 if $v=~/_/;
}
if (/PerlSetVar\s+lonDefDomain\s+(\S+)/) {
my $v=$1;
$dbug=0;
- $dbug=1 if $v=~/\W/;
- $dbug=1 if $v=~/\_/;
+ $dbug=1 if $v=~/[^\w.\-]/;
+ $dbug=1 if $v=~/_/;
+ # Avoid namespace conflicts under the web server's DocumentRoot.
+ my @badnames=('raw','userfiles','priv','adm','uploaded');
+ foreach my $bad (@badnames) {
+ $dbug=1 if $v eq $bad;
+ }
}
}
if ($hbug) {
@@ -65,30 +151,47 @@ my $rbug=0;
my $dbug=0;
my $sbug=0;
my $fbug=0;
-while (<IN>) {
- if (/\S/) {
- $rbug=1 if /\r/;
- my @a=split(/\:/,$_);
- $dbug=1 if $a[0]=~/\W/;
- $dbug=1 if $a[0]=~/\_/;
- $dbug=1 if $a[1]=~/\_/;
- $dbug=1 if $a[1]=~/\W/;
- $fbug=1 if @a!=5;
- $sbug=1 if /\s.+$/;
+my %line;
+my $line=0;
+while (my $l = <IN>) {
+ $line++;
+ next if ($l=~/^(\#|\s*$)/);
+ if ($l=~/^\^/) {
+ if ($l !~ /^\^[\w.\-]/) {
+ $dns_bug = 1;
+ push(@{$line{'dns'}},$line);
+ }
+ } elsif ($l=~/\S/) {
+ if ($l=~/\r/) { $rbug=1; push(@{$line{'r'}},$line); }
+ my @a=split(/:/,$l);
+ if ($a[0]=~/[^\w\-.]/ ||
+ $a[1]=~/[^\w\-.]/ ||
+ $a[0]=~/\_/ ||
+ $a[1]=~/\_/ ) { $dbug=1; push(@{$line{'d'}},$line); }
+ if (@a<4 || @a>5) { $fbug=1; push(@{$line{'f'}},$line); }
+ my $expr='\s.+$';
+ if ($a[0] =~ /$expr/ ||
+ $a[1] =~ /$expr/ ||
+ $a[2] =~ /$expr/ ||
+ $a[3] =~ /$expr/ ) { $sbug=1; push(@{$line{'s'}},$line); }
+;
}
}
close IN;
if ($rbug) {
- print "**** ERROR **** is DOS-formatted\n";
+ print "**** ERROR **** is DOS-formatted (lines ".join(', ',@{$line{'r'}}).")\n";
}
if ($dbug) {
- print "**** ERROR **** has invalid host id or domain id\n";
+ print "**** ERROR **** has invalid host id or domain id (lines ".join(', ',@{$line{'d'}}).")\n";
}
if ($fbug) {
- print "**** ERROR **** is lacking 5 columns for every row\n";
+ print "**** ERROR **** is lacking 4 or 5 columns for every row (lines ".join(', ',@{$line{'f'}}).")\n";
}
if ($sbug) {
- print "**** ERROR **** has illegal whitespace character\n";
+ print "**** ERROR **** has illegal whitespace character (lines ".join(', ',@{$line{'s'}}).")\n";
+}
+if ($dns_bug) {
+ print "**** ERROR **** host.tab server entry has characters (lines ".join(', ',@{$line{'dns'}}).")\n";
}
@@ -97,12 +200,14 @@ open IN, "<";
my $rbug=0;
my $dbug=0;
my $sbug=0;
-while (<IN>) {
- if (/\S/) {
- $rbug=1 if /\r/;
- $dbug=1 if $_=~/\W.*\n$/;
- $dbug=1 if $_=~/\_/;
- $sbug=1 if /\s.+$/;
+while (my $line = <IN>) {
+ if ($line =~ /\S/) {
+ $rbug=1 if $line=~/\r/;
+ if ($line =~ /\W.*\n/) {
+ $dbug=$line if ($line !~/\w:(?:primary|default)$/);
+ }
+ $dbug=$line if $line=~/\_/;
+ $sbug=1 if $line=~/\s.+$/;
}
}
close IN;
@@ -110,7 +215,7 @@ if ($rbug) {
print "**** ERROR **** is DOS-formatted\n";
}
if ($dbug) {
- print "**** ERROR **** has invalid host id\n";
+ print "**** ERROR **** has invalid host id ($dbug)\n";
}
if ($sbug) {
print "**** ERROR **** has illegal whitespace character\n";