From: eldy <> Date: Sat, 1 Jan 2005 21:49:10 +0000 (+0000) Subject: webmin: Change to test if geoip data file exists. X-Git-Tag: AWSTATS_6_3_RELEASE~27 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7c7153a8bb1319b330edff7a2dd22b9195ca31aa;p=thirdparty%2FAWStats.git webmin: Change to test if geoip data file exists. --- diff --git a/tools/webmin/awstats/geoip_info.cgi b/tools/webmin/awstats/geoip_info.cgi index b2a0d5d5..888d4d3a 100644 --- a/tools/webmin/awstats/geoip_info.cgi +++ b/tools/webmin/awstats/geoip_info.cgi @@ -19,40 +19,54 @@ print "
\n"; my $type=$in{'type'}; my $size=-1; -my $version='unknown'; - -local @st=stat($in{'file'}); -my $size = $st[7]; -my ($sec,$min,$hour,$day,$month,$year,$wday,$yday) = localtime($st[9]); -$year+=1900; $month++; print "GeoIP information for file ".$in{'file'}."

\n"; # Try to get the GeoIP data file version at end of file -my $seekpos=($size-100); -if ($seekpos < 0) { $seekpos=0; } -open(GEOIPFILE,"<$in{'file'}") || print "Failed to open file $in{'file'}
\n"; -binmode GEOIPFILE; -seek(GEOIPFILE,$seekpos,0); -my $nbread=0; -while (($nbread < 100) && ($line=)) { - $nbread++; - if ($line =~ /(Geo-.*)Copyright/i) { - $version=$1; - last; +if (-f "$in{'file'}") { + my @st=stat($in{'file'}); + my $size = $st[7]; + my ($sec,$min,$hour,$day,$month,$year,$wday,$yday) = localtime($st[9]); + $year+=1900; $month++; + + print "Geoip data file type: $type
\n"; + print "Geoip data file size: $size bytes
\n"; + printf("Geoip data file date: %04s-%02s-%02s %02s:%02s:%02s
\n",$year,$month,$day,$hour,$min,$sec); + + my $version='unknown'; + + # Try to get version from API + + + + # Try to get version from file + if (! $version || $version eq 'unknown') { + if (open(GEOIPFILE,"<$in{'file'}")) { + my $seekpos=($size-100); + if ($seekpos < 0) { $seekpos=0; } + binmode GEOIPFILE; + seek(GEOIPFILE,$seekpos,0); + my $nbread=0; + while (($nbread < 100) && ($line=)) { + $nbread++; + if ($line =~ /(Geo-.*)Copyright/i) { + $version=$1; + last; + } + } + close (GEOIPFILE); + } } -} -close (GEOIPFILE); - + + print "Geoip data file version: $version
\n"; +} else { + print "GeoIP datafile $in{'file'} does not exist or can not be read.
\n"; +} -print "Geoip data file type: $type
\n"; -print "Geoip data file size: $size bytes
\n"; -printf("Geoip data file date: %04s-%02s-%02s %02s:%02s:%02s
\n",$year,$month,$day,$hour,$min,$sec); -print "Geoip data file version: $version
\n"; -print "

\n"; +print "
\n"; # Back to config list print "
\n";