This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via 7b97337afb4576d4bacbe854e8822e97b4cd1a40 (commit) via 07e42be9783ddfe2c6e49d98676fcdb7f2dfecd7 (commit) via 427190d5789b02331cb91d72f0fb7f97374a0aa0 (commit) via 5bf91fe1b1fb04e9dd422bdc1638e2592fd073b8 (commit) via f46fd078148d4c6959e7ab3c52f1911bd8fea9a6 (commit) via b62d7e0cc71cc1ff23d66dd8baf0f5f3c5c7a29b (commit) from 9141282b09db282ae202302e25da4ed924e8deec (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 7b97337afb4576d4bacbe854e8822e97b4cd1a40 Author: Michael Tremer michael.tremer@ipfire.org Date: Mon Nov 9 14:11:16 2020 +0000
core153: Ship location changes
Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 07e42be9783ddfe2c6e49d98676fcdb7f2dfecd7 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Nov 7 19:47:24 2020 +0100
Adjust CGI files to work with latest location-function.pl changes.
Fixes #12515.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 427190d5789b02331cb91d72f0fb7f97374a0aa0 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Nov 7 19:47:23 2020 +0100
locations-functions.pl: Allow get_locations() function to skip special locations.
When adding "no_special_locations" to the function call as argument the special locations liks "A1, A2, A3 etc" will not be added to the returned array as available locations.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 5bf91fe1b1fb04e9dd422bdc1638e2592fd073b8 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Nov 7 19:47:22 2020 +0100
location-functions.pl: Add get_continent_code() function.
This tiny function is used to get the continent code for a given country code.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit f46fd078148d4c6959e7ab3c52f1911bd8fea9a6 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Nov 7 19:47:21 2020 +0100
location-functions.pl: Add END block to release the database handle.
Reference #12515.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit b62d7e0cc71cc1ff23d66dd8baf0f5f3c5c7a29b Author: Stefan Schantl stefan.schantl@ipfire.org Date: Sat Nov 7 19:47:20 2020 +0100
location-functions.pl: Use a single script-wide db_handle.
Create and use a single script-wide database handle for libloc to prevent from creating multiple ones.
This helps saving memory, especially on small systems.
Reference #12515.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
Summary of changes: config/cfgroot/location-functions.pl | 45 ++++++++++++++++++------ config/rootfiles/core/153/filelists/files | 10 ++++++ html/cgi-bin/connections.cgi | 7 ++-- html/cgi-bin/country.cgi | 5 +-- html/cgi-bin/dns.cgi | 5 +-- html/cgi-bin/ipinfo.cgi | 5 ++- html/cgi-bin/logs.cgi/firewalllog.dat | 6 ++-- html/cgi-bin/logs.cgi/firewalllogcountry.dat | 5 +-- html/cgi-bin/logs.cgi/firewalllogip.dat | 6 ++-- html/cgi-bin/logs.cgi/showrequestfromcountry.dat | 7 ++-- html/cgi-bin/ovpnmain.cgi | 5 +-- html/cgi-bin/remote.cgi | 6 +--- html/cgi-bin/tor.cgi | 7 ++-- lfs/tor | 2 +- 14 files changed, 63 insertions(+), 58 deletions(-)
Difference in files: diff --git a/config/cfgroot/location-functions.pl b/config/cfgroot/location-functions.pl index 2cfe7f908..fdf2c6efe 100644 --- a/config/cfgroot/location-functions.pl +++ b/config/cfgroot/location-functions.pl @@ -55,6 +55,9 @@ our $keyfile = "$location_dir/signing-key.pem"; # Directory which contains the exported databases. our $xt_geoip_db_directory = "/usr/share/xt_geoip/";
+# Create libloc database handle. +my $db_handle = &init(); + # ## Tiny function to init the location database. # @@ -86,7 +89,7 @@ sub verify ($) { ## Function to the the country code of a given address. # sub lookup_country_code($$) { - my ($db_handle, $address) = @_; + my ($address) = @_;
# Lookup the given address. my $country_code = &Location::lookup_country_code($db_handle, $address); @@ -174,22 +177,37 @@ sub get_full_country_name($) {
# Function to get all available locations. sub get_locations() { - # Create libloc database handle. - my $db_handle = &init(); + my ($mode) = @_; + + # Set default mode to add_special_locations. + $mode = $mode ? $mode : "add_special_locations";
# Get locations which are stored in the location database. - my @database_locations = &Location::database_countries($db_handle); + my @locations = &Location::database_countries($db_handle);
- # Merge special locations array and the database locations array. - my @locations = (@special_locations, @database_locations); + # Check if the special locations should be added. + if ($mode ne "no_special_locations") { + # Merge special locations array and the database locations array. + @locations = (@special_locations, @locations); + }
# Sort locations array in alphabetical order. my @sorted_locations = sort(@locations);
- # Return the array.. + # Return the array. return @sorted_locations; }
+# Function to get the continent code of a given country code. +sub get_continent_code($) { + my ($country_code) = @_; + + # Use location module to grab the continent code. + my $continent_code = &Location::get_continent_code($db_handle, $country_code); + + return $continent_code; +} + # Function to check if a given address has one ore more special flags. sub address_has_flags($) { my ($address) = @_; @@ -197,9 +215,6 @@ sub address_has_flags($) { # Array to store the flags of the address. my @flags;
- # Init libloc database handle. - my $db_handle = &init(); - # Loop through the hash of possible network flags. foreach my $flag (keys(%network_flags)) { # Check if the address has the current flag. @@ -221,4 +236,14 @@ sub address_has_flags($) { return @flags; }
+# Custom END declaration which will be executed when perl +# ends, to release the database handle to libloc. +END { + # Check if a database handle exists. + if ($db_handle) { + # Destroy libloc database handle. + &Location::DESTROY($db_handle); + } +} + 1; diff --git a/config/rootfiles/core/153/filelists/files b/config/rootfiles/core/153/filelists/files index 1a95431f0..04605c232 100644 --- a/config/rootfiles/core/153/filelists/files +++ b/config/rootfiles/core/153/filelists/files @@ -3,9 +3,19 @@ etc/ntp.conf etc/os-release etc/system-release etc/sysctl.conf +srv/web/ipfire/cgi-bin/connections.cgi +srv/web/ipfire/cgi-bin/country.cgi srv/web/ipfire/cgi-bin/credits.cgi srv/web/ipfire/cgi-bin/dns.cgi srv/web/ipfire/cgi-bin/index.cgi +srv/web/ipfire/cgi-bin/ipinfo.cgi srv/web/ipfire/cgi-bin/location-block.cgi +srv/web/ipfire/cgi-bin/logs.cgi/firewalllog.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat +srv/web/ipfire/cgi-bin/logs.cgi/firewalllogip.dat +srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromcountry.dat +srv/web/ipfire/cgi-bin/ovpnmain.cgi +srv/web/ipfire/cgi-bin/remote.cgi srv/web/ipfire/cgi-bin/vpnmain.cgi +var/ipfire/location-functions.pl var/ipfire/langs diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi index 6c55bd7a0..8613b9d9b 100644 --- a/html/cgi-bin/connections.cgi +++ b/html/cgi-bin/connections.cgi @@ -86,9 +86,6 @@ if ( $debug ){ my @dummy = ( ${Header::table1colour} ); undef (@dummy);
-# Init libloc database connection. -my $libloc_db_handle = &Location::Functions::init(); - # check sorting arguments if ( $cgiin{'sort_field'} ~~ [ '1','2','3','4','5','6','7','8','9' ] ) { $SORT_FIELD = $cgiin{'sort_field'}; @@ -554,9 +551,9 @@ foreach my $line (@conntrack) { my $bytes_out = format_bytes($bytes[1]);
# enumerate location information - my $srcccode = &Location::Functions::lookup_country_code($libloc_db_handle, $sip_ret); + my $srcccode = &Location::Functions::lookup_country_code($sip_ret); my $src_flag_icon = &Location::Functions::get_flag_icon($srcccode); - my $dstccode = &Location::Functions::lookup_country_code($libloc_db_handle, $dip_ret); + my $dstccode = &Location::Functions::lookup_country_code($dip_ret); my $dst_flag_icon = &Location::Functions::get_flag_icon($dstccode);
# Format TTL diff --git a/html/cgi-bin/country.cgi b/html/cgi-bin/country.cgi index b519d89b3..b1c72bb22 100644 --- a/html/cgi-bin/country.cgi +++ b/html/cgi-bin/country.cgi @@ -52,11 +52,8 @@ print<<END; </tr> END
-# Init libloc database connection. -my $db_handle = &Location::Functions::init(); - # Get a list of all supported country codes. -my @countries = &Location::database_countries($db_handle); +my @countries = &Location::database_countries();
# Loop through whole country list. foreach my $country (@countries) { diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi index 13dd9d6a0..762e77ff1 100755 --- a/html/cgi-bin/dns.cgi +++ b/html/cgi-bin/dns.cgi @@ -269,9 +269,6 @@ my %dns_servers = (); # Read-in config file. &General::readhasharray("$servers_file", %dns_servers);
-# Libloc database handle -my $libloc_db_handle = &Location::Functions::init(); - &Header::openpage($Lang::tr{'dns title'}, 1, '');
&Header::openbigbox('100%', 'left', '', $errormessage); @@ -598,7 +595,7 @@ END }
# collect more information about name server (rDNS, country code) - my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $nameserver); + my $ccode = &Location::Functions::lookup_country_code($nameserver); my $flag_icon = &Location::Functions::get_flag_icon($ccode);
my $rdns; diff --git a/html/cgi-bin/ipinfo.cgi b/html/cgi-bin/ipinfo.cgi index d8cb6c6b7..ecc7c436c 100644 --- a/html/cgi-bin/ipinfo.cgi +++ b/html/cgi-bin/ipinfo.cgi @@ -62,12 +62,11 @@ if (&General::validip($addr)) { if (!$hostname) { $hostname = $Lang::tr{'lookup failed'}; }
# enumerate location information for IP address... - my $db_handle = &Location::Functions::init(); - my $ccode = &Location::Functions::lookup_country_code($db_handle, $addr); + my $ccode = &Location::Functions::lookup_country_code($addr); my @network_flags = &Location::Functions::address_has_flags($addr);
# Try to get the continent of the country code. - my $continent = &Location::get_continent_code($db_handle, $ccode); + my $continent = &Location::Functions::get_continent_code($ccode);
# Check if a whois server for the continent is known. if($whois_servers_by_continent{$continent}) { diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat index 2b690e35b..361bf0432 100644 --- a/html/cgi-bin/logs.cgi/firewalllog.dat +++ b/html/cgi-bin/logs.cgi/firewalllog.dat @@ -24,9 +24,6 @@ require "${General::swroot}/location-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
-# Libloc database handle. -my $libloc_db_handle = &Location::Functions::init(); - my %color = (); my %mainsettings = (); &General::readhash("${General::swroot}/main/settings", %mainsettings); @@ -354,7 +351,8 @@ foreach $_ (@log) $srcport=$1 if $packet =~ /SPT=(\d+)/; $dstport=$1 if $packet =~ /DPT=(\d+)/;
- my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr); + # Get the country code. + my $ccode = &Location::Functions::lookup_country_code($srcaddr);
my $servi = uc(getservbyport($srcport, lc($proto))); if ($servi ne '' && $srcport < 1024) { diff --git a/html/cgi-bin/logs.cgi/firewalllogcountry.dat b/html/cgi-bin/logs.cgi/firewalllogcountry.dat index 701abab2c..e3901b945 100644 --- a/html/cgi-bin/logs.cgi/firewalllogcountry.dat +++ b/html/cgi-bin/logs.cgi/firewalllogcountry.dat @@ -22,9 +22,6 @@ require "${General::swroot}/location-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
-# Libloc database handle. -my $libloc_db_handle = &Location::Functions::init(); - use POSIX();
my %cgiparams=(); @@ -311,7 +308,7 @@ foreach $_ (@log) # Traffic from red if($srcaddr ne '') { # srcaddr is set - my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr); + my $ccode = &Location::Functions::lookup_country_code($srcaddr); if ($ccode eq '') { $ccode = 'unknown'; } diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat index 670d72a52..6de4081af 100644 --- a/html/cgi-bin/logs.cgi/firewalllogip.dat +++ b/html/cgi-bin/logs.cgi/firewalllogip.dat @@ -22,9 +22,6 @@ require "${General::swroot}/location-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
-# Libloc database handle. -my $libloc_db_handle = &Location::Functions::init(); - use POSIX();
my %cgiparams=(); @@ -438,7 +435,8 @@ for($s=0;$s<$lines;$s++) $col="bgcolor='$color{"color$colorIndex"}'"; print "<tr>";
- my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $key[$s]); + # Get country code. + my $ccode = &Location::Functions::lookup_country_code($key[$s]);
$color++; print "<td align='center' $col><form method='post' action='showrequestfromip.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='ip' value='$key[$s]'> <input type='submit' value='$Lang::tr{'details'}'></form></td>"; diff --git a/html/cgi-bin/logs.cgi/showrequestfromcountry.dat b/html/cgi-bin/logs.cgi/showrequestfromcountry.dat index 4d80e77a4..2a246ec60 100644 --- a/html/cgi-bin/logs.cgi/showrequestfromcountry.dat +++ b/html/cgi-bin/logs.cgi/showrequestfromcountry.dat @@ -19,9 +19,6 @@ require "${General::swroot}/location-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
-# Libloc database handle. -my $libloc_db_handle = &Location::Functions::init(); - use POSIX();
#workaround to suppress a warning when a variable is used only once @@ -181,7 +178,7 @@ if (!$skip) } elsif($srcaddr ne '') { # or srcaddr matches country code - my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr); + my $ccode = &Location::Functions::lookup_country_code($srcaddr); if($ccode eq uc($country)){ $log[$lines] = $_; $lines++; @@ -352,7 +349,7 @@ foreach $_ (@slice) if($iface eq $country || $srcaddr ne '') { my $ccode=''; if($iface ne $country) { - $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr); + $ccode = &Location::Functions::lookup_country_code($srcaddr); } if($iface eq $country || $ccode eq uc($country)) { my $chain = ''; diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi index e7bc505e7..8626a94ca 100644 --- a/html/cgi-bin/ovpnmain.cgi +++ b/html/cgi-bin/ovpnmain.cgi @@ -3002,9 +3002,6 @@ END &Header::openbigbox('100%', 'LEFT', '', ''); &Header::openbox('100%', 'LEFT', $Lang::tr{'ovpn con stat'});
- # Libloc database handle. - my $libloc_db_handle = &Location::Functions::init(); - # # <td><b>$Lang::tr{'protocol'}</b></td> # protocol temp removed @@ -3055,7 +3052,7 @@ END $users[$uid]{'Proto'} = $proto;
# get country code for "RealAddress"... - my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, (split ':', $users[$uid]{'RealAddress'})[0]); + my $ccode = &Location::Functions::lookup_country_code((split ':', $users[$uid]{'RealAddress'})[0]); my $flag_icon = &Location::Functions::get_flag_icon($ccode); $users[$uid]{'Country'} = "<a href='country.cgi#$ccode'><img src='$flag_icon' border='0' align='absmiddle' alt='$ccode' title='$ccode' /></a>"; $uid++; diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi index 9c742669b..a27e10de9 100644 --- a/html/cgi-bin/remote.cgi +++ b/html/cgi-bin/remote.cgi @@ -277,10 +277,6 @@ sub printactivelogins() print "<tr bgcolor='$table_colour'><td colspan='5'>$Lang::tr{'ssh no active logins'}</td></tr>\n"; } else { # list active logins... - - # Libloc database handle. - my $libloc_db_handle = &Location::Functions::init(); - foreach my $line (@output) { my @arry = split(/\ +/, $line); @@ -291,7 +287,7 @@ sub printactivelogins() $remoteip =~ s/[()]//g;
# display more information about that IP adress... - my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $remoteip); + my $ccode = &Location::Functions::lookup_country_code($remoteip); my $flag_icon = &Location::Functions::get_flag_icon($ccode);
# get rDNS... diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi index 14bfcfe90..983bb30c9 100644 --- a/html/cgi-bin/tor.cgi +++ b/html/cgi-bin/tor.cgi @@ -30,9 +30,6 @@ require "${General::swroot}/location-functions.pl"; require "${General::swroot}/lang.pl"; require "${General::swroot}/header.pl";
-# Init libloc database connection. -my $db_handle = &Location::Functions::init(); - #workaround to suppress a warning when a variable is used only once my @dummy = ( ${Header::colouryellow} ); undef (@dummy); @@ -322,7 +319,7 @@ END <select name='TOR_EXIT_COUNTRY'> <option value=''>- $Lang::tr{'tor exit country any'} -</option> END - my @country_codes = &Location::database_countries($db_handle); + my @country_codes = &Location::Functions::get_locations("no_special_locations"); foreach my $country_code (@country_codes) { # Convert country code into upper case format. $country_code = uc($country_code); @@ -912,7 +909,7 @@ sub TorNodeDescription() { $node->{'address'} = $3; $node->{'port'} = $4;
- my $country_code = &Location::Functions::lookup_country_code($db_handle, $node->{'address'}); + my $country_code = &Location::Functions::lookup_country_code($node->{'address'}); $node->{'country_code'} = $country_code;
# Flags diff --git a/lfs/tor b/lfs/tor index 5610c17d1..b7c28495d 100644 --- a/lfs/tor +++ b/lfs/tor @@ -32,7 +32,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = tor -PAK_VER = 54 +PAK_VER = 55
DEPS = libseccomp
hooks/post-receive -- IPFire 2.x development tree