diff --git a/config/cfgroot/geoip-functions.pl b/config/cfgroot/geoip-functions.pl
index 85a8dc84f..fc2dfdd34 100644
--- a/config/cfgroot/geoip-functions.pl
+++ b/config/cfgroot/geoip-functions.pl
@@ -41,8 +41,8 @@ sub get_flag_icon($) {
# Remove whitespaces.
chomp($input);
- # Convert given country code to lower case.
- my $ccode = lc($input);
+ # Convert given country code to upper case.
+ my $ccode = uc($input);
# Generate filename, based on the contry code in lower case
# and the defined file extension.
@@ -58,6 +58,21 @@ sub get_flag_icon($) {
if (-e "$absolute_path") {
# Return content of flag_icon.
return $flag_icon;
+ } else {
+ # If no icon for the specified country exists, try to use
+ # the icon for "unknown".
+ my $ccode = "unknown";
+
+ # Redoing all the stuff from abouve for the "unknown" icon.
+ my $file = join('.', $ccode,$ext);
+ my $flag_icon = join('/', $flagdir,$file);
+ my $absolute_path = join('', $webroot,$flag_icon);
+
+ # Check if the icon is present.
+ if (-e "$absolute_path") {
+ # Return "unknown" icon.
+ return $flag_icon;
+ }
}
}
diff --git a/html/cgi-bin/country.cgi b/html/cgi-bin/country.cgi
index 65ce15433..60c2e5869 100644
--- a/html/cgi-bin/country.cgi
+++ b/html/cgi-bin/country.cgi
@@ -31,6 +31,7 @@ my @flaglistfiles=();
my $flag = '';
require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/geoip-functions.pl";
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
@@ -64,12 +65,16 @@ foreach $flag (@flaglistfiles)
my $flagcode = uc(substr($flag, 0, 2));
my $fcode = lc($flagcode);
+
+ # Get flag icon for of the country.
+ my $flag_icon = &GeoIP::get_flag_icon($fcode);
+
my $country = Locale::Country::code2country($fcode);
if($fcode eq 'eu') { $country = 'Europe'; }
if($fcode eq 'tp') { $country = 'East Timor'; }
if($fcode eq 'yu') { $country = 'Yugoslavia'; }
if ($lines % 2) {
- print "
 | ";
+ print " | ";
print "$flagcode | ";
print "$country | \n";
}
@@ -81,7 +86,7 @@ foreach $flag (@flaglistfiles)
$col="style='background-color:${Header::table1colour};'";
}
print "";
- print " | ";
+ print " | ";
print "$flagcode | ";
print "$country | ";
print " | ";
diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat
index 752562666..5a584d60d 100644
--- a/html/cgi-bin/logs.cgi/firewalllog.dat
+++ b/html/cgi-bin/logs.cgi/firewalllog.dat
@@ -21,6 +21,7 @@ use Getopt::Std;
#use CGI::Carp 'fatalsToBrowser';
require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/geoip-functions.pl";
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
@@ -372,10 +373,15 @@ foreach $_ (@log)
$srcport $dstport |
END
;
- if ( $fcode ne "" ){
- print " | ";}
- else {
- print " | ";}
+ # Get flag icon for of the country.
+ my $flag_icon = &GeoIP::get_flag_icon($fcode);
+
+ if ( $flag_icon) {
+ print " | ";
+ } else {
+ print " | ";
+ }
+
print <$macaddr
diff --git a/html/cgi-bin/logs.cgi/firewalllogcountry.dat b/html/cgi-bin/logs.cgi/firewalllogcountry.dat
index 3a774f922..29c084218 100644
--- a/html/cgi-bin/logs.cgi/firewalllogcountry.dat
+++ b/html/cgi-bin/logs.cgi/firewalllogcountry.dat
@@ -19,6 +19,7 @@ use Getopt::Std;
#use CGI::Carp 'fatalsToBrowser';
require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/geoip-functions.pl";
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
@@ -460,11 +461,15 @@ for($s=0;$s<$lines;$s++)
print "$key[$s] | ";
}
else {
- if($key[$s] ne 'unknown' ) {
- my $fcode = lc($key[$s]);
- print "![$key[$s] $key[$s]](/images/flags/$fcode.png) | ";}
- else {
- print "$key[$s] | ";
+ my $fcode = lc($key[$s]);
+
+ # Get flag icon for of the country.
+ my $flag_icon = &GeoIP::get_flag_icon($fcode);
+
+ if($flag_icon) {
+ print "![$key[$s] $key[$s]]($flag_icon) | ";
+ } else {
+ print "$key[$s] | ";
}
}
print "$value[$s] | ";
diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat
index 07bcc77f8..7d82d20e7 100644
--- a/html/cgi-bin/logs.cgi/firewalllogip.dat
+++ b/html/cgi-bin/logs.cgi/firewalllogip.dat
@@ -19,6 +19,7 @@ use Getopt::Std;
#use CGI::Carp 'fatalsToBrowser';
require '/var/ipfire/general-functions.pl';
+require "${General::swroot}/geoip-functions.pl";
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
@@ -441,13 +442,19 @@ for($s=0;$s<$lines;$s++)
$color++;
print " | ";
print "$key[$s] | ";
- if ( $fcode ne "" ){
- print " | ";}
- else {
- print " | ";}
- print "$value[$s] | ";
- print "$percent | ";
- print "";
+
+ # Get flag icon for of the country.
+ my $flag_icon = &GeoIP::get_flag_icon($ccode);
+
+ if ( $flag_icon ) {
+ print " | ";
+ } else {
+ print " | ";
+ }
+
+ print "$value[$s] | ";
+ print "$percent | ";
+ print "";
}
if($cgiparams{'otherspie'} == 2 ){}